Replace the Sandbox with a Library object

This provides a more specific interface to external libraries. Instead
of adding everything to a global prototype a module requires only what
it needs. These dependencies are then initialized and passed into the
module constructor.

This makes testing modules much easier as the entire sandbox object
is removed from the equation.
Implement ModuleFactory#requires()

This allows modules to declare their dependencies. These will then be
passed into the constructor under the "dependencies" key. By default the
ModuleMediator is always required under the key "hub".
Update the events lib to use the Library instance

Also renamed SandboxEvents to ModuleMediator just to get some extra
buzz words in there.
Update test index and dependencies
Add unit tests for ModuleFactory#requires()
Add unit tests for the Library module
Rename Library to LibraryRegistry
Use sinon.sandbox in the module spec
Update the README and fix ci to actually test Zepto
Fix minor lint errors
Update documentation to include the Library object
Wrap all library files in an AMD wrapper

Also move files down one directory.
Add requirejs and amdclean as dependencies

Also lock jshint to 2.4.4 as this is the last version that supports
the white: true option.
Remove the test/index.js script
Add UMD wrapped versions of Soak and Broadcast
Add requirejs to the test dependencies
Add build script

This will package up the library wrapped in the UMD boilerplate.
Update the test suite to use requirejs
Update the Makefile to use new test options
Update dependencies