Changed the way hook.run works to a more proper way

hook.run now uses instance.runScriptHookForResult instead of
instance.runWithOps
[Added] instance:error(msg,traceback)

This new function is intended to be used in libraries such as the hook
library and timer library when you need to sandbox function calls and
handle errors.

Also made said libraries use this new function.
Fixed uploading breaking if a processor/screen errored

If a processor/screen errored inside a sandboxed function (for example a
hook) during their first execution, uploading would stop working.