Pull request of pull requests

This PR merges the following existing PRs under a single merge that is resolved against master and cleaned up for project standards and tests.  Some original commits were squashed in the process of making these fixes, apologies to those contributors.

- #127
- #124
- #118 
- #111 
- #107 
- #101 
- #97 

I believe these changes also render the following PRs redundant:

- #106 
- #98 
- #59 

I've also added the top contributors to the package.json (according to github) and addressed a few context conditions that were missing.

I'm 90% certain that there's no breaking changes in this, but I would still recommend bumping the next release to 0.5 if this is accepted.