Since we have a 3D cursor now, we should consider rotation when snapping objects to cursor. Also, the user can chose to apply a rotation offset, i.e. either add or copy the cursor's rotation to the selected objects.
Moved transform locks to Ed_util.
Example:
{F7068403}