Lots of tweaks, must NOT use Permissions.CanUseObjectReturn
Lots of tweaks, must NOT use Permissions.CanUseObjectReturn

Those are user-session / viewer permissions checks which do not match
the scripted checks (almost at all). Also moved canUseReturnPermission
check to the top of the functions since we don't need to iterate at all
if it fails.  Lots of little fixes with the return codes and subtle
fixes to check semantics.

zwagoth/halcyon,InWorldz/halcyon,emperorstarfinder/halcyon,kf6kjg/halcyon,InWorldz/halcyon,InWorldz/halcyon,kf6kjg/halcyon,zwagoth/halcyon,kf6kjg/halcyon,emperorstarfinder/halcyon,InWorldz/halcyon,zwagoth/halcyon,kf6kjg/halcyon,InWorldz/halcyon,emperorstarfinder/halcyon,kf6kjg/halcyon,emperorstarfinder/halcyon,InWorldz/halcyon,zwagoth/halcyon,kf6kjg/halcyon,emperorstarfinder/halcyon,zwagoth/halcyon,emperorstarfinder/halcyon,InWorldz/halcyon,kf6kjg/halcyon,zwagoth/halcyon,zwagoth/halcyon,InWorldz/halcyon,kf6kjg/halcyon,zwagoth/halcyon,kf6kjg/halcyon,InWorldz/halcyon,emperorstarfinder/halcyon,zwagoth/halcyon