Shift transaction validation extension hook

Users can now perform custom validation for shift transactions such as book-off and shift edits. Each transaction can also have a transaction specific validation.