Adding peerDependencies support.

Also:

* Rewrote code to be much more editable in the future.
* Added a fixture JSON file.
* More unit tests.
Updated to more recent Grunt / plugins.
Added keywords.