BREAKING CHANGE: 'load' returns the module object

Instead of evaluating the contents of a script into the shared script
scope, an object with the same name of the script is retrieved from the
script evaluation and returned by the load function.

This change was made in response to repeated testing false positives. We
found that tests would load helper files to test them which caused tests
to pass for other files that should have loaded the helper files but
didn't.

This makes exporting explicit and allows for namespacing and aliasing in
addition to eliminating the testing failures caused by pulling
everything into scope by default.
Fix tests and split up into more modules
Add some more basics to hegemon/sequence.

+jsdoc
Fix scope polution by setting parent scope to null
Add Assert alias to unittest
Add sequence.contains
Add sequence.findFirst (sort of)
json.roundtripJson
Fix broken test
Merge branch 'loading'