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.
chore(*): Release of Inject 0.6.0 (via grunt)
chore(*): Release of Inject 0.6.0 (via grunt)
Added a release task check to ensure the branch is 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.
Merge branch 'master' of github.com:gvsboy/inject
fix(grunt): use native trim

I overlooked native trim when amending the release grunt task. Since it's
available we may as well use it.
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
Merge pull request #296 from gvsboy/master

fix(Communicator, Relay) repairs broken event listener calls
fix(Communicator, Relay) repairs broken event listener calls

Conflicts:
	src/communicator.js
chore(*): Release of Inject 0.6.1 (via grunt)
chore(*): Merge 0.6.1 back into master

Merge tag '0.6.1'

Release 0.6.1 (via grunt)

* tag '0.6.1':
  chore(*): Release of Inject 0.6.1 (via grunt)
  fix(Communicator, Relay) repairs broken event listener calls
  chore(*): Release of Inject 0.6.0 (via grunt)

Conflicts:
	CHANGELOG.md
	bower.json
	dist/recent/inject.js
	dist/recent/inject.min.js
	package.json
	src/communicator.js
chore(*): Updated dist versions of Inject post-merge

After upgrading master to work from 0.6.1, we rebuilt the dist files
for those working on the bleeding edge.
fix(Communicator): communicator now only uses iframe when cross domain

Previously, the communicator would always try and use an iframe, even when the
resource was on the same domain as the requesting page. This added the overhead
of instantiating the iframe, even if a cross domain request hadn't been made.

By reusing getDomainName() from the window.postMessage checking logic, we can
attempt to do a normal XMLHttpRequest if the domains match.

BREAKING CHANGE:
If you had logic that was depending on the iframe existing, then it may not
always be available. Making a cross domain request will establish the iframe.
chore(*) fix express server call in releasetest task
chore(*): Release of Inject 0.7.0-rc1 (via grunt)
fix(plugins) plugins now work with instances of Inject

the extras for inject surrounding the non AMD plugins were never modified to
work with the new instance based designs. This change allows a global
INJECT_PLUGINS object to exist, which can then be plugged in to.

BREAKING CHANGE
The prior inject-plugins.js file is no longer a part of recent, and the
plugins need to be included indivudally. Additionally, a plugin needs to be
enabled by passing the instance of Inject to the plugin method:

INJECT_PLUGINS.css(Inject); // adds the CSS plugin to the current instance