feat(Core): Allows for multiple instances of Inject

Previously, only one global "Inject" object could be used at a time
this changes the behavior to allow multiple versions of Inject to
exist through the new Inject.createContext(baseUrl) method. This same
method is used to populate the global Inject, require, and define
variables. While this does not introduce backwards compatibility
directly, the change is large enough to warrant a minor version bump.

All tests were updated to reflect the new syntax.

BREAKING CHANGE
In order for AMD tests to pass under the new system, the signature
for addFetchRule changed from callback(errors, result) to the documented
version of callback(result). Errors are created by simply throwing an
exception.
fix(grunt): Reincludes the qunit commands

The last commit didn't have the qunit information in the gruntfile. This
adds the items back.
Merge branch 'instance_merge' of git://github.com/Jakobo/inject into Jakobo-instance_merge

* 'instance_merge' of git://github.com/Jakobo/inject:
  fix(grunt): Reincludes the qunit commands
  feat(Core): Allows for multiple instances of Inject

Conflicts:
	dist/recent/inject.js
	dist/recent/inject.min.js
Merge pull request #295 from gvsboy/master

feat(grunt): adds a release task check to ensure the branch is master

If you run the release grunt task while not in the master branch,
the repo will get trashed. After personally experiencing this,
I created this check to prevent this from happening in the future.
fix(Communicator, Relay) repairs broken event listener calls