Prepare for publishing to NPM

* Update `package.json`:
  * Add `main` field, pointing to CommonJS build at `dist/route-recognizer.cjs.js`.
  * Update description.
  * Add version -- I chose `0.1.0` but perhaps it should be different.
* Add `.npmignore`, ignoring Ruby build files.
sortSolutions: prefer more dynamics if any stars

When sorting States,

 1. prefer fewer stars to more stars
 1. if any stars, prefer more dynamics and statics to fewer
    (since those both eat away at the amount that the stars
    must take up)
 1. if no stars, prefer fewer dynamics and more statics

This changes the rule slightly to: "prefer fewer dynamic segments
and prefer using them for less of the match".

Fixes #21
Merge pull request #22 from jamesarosen/james/sort-solutions

sortSolutions: prefer more dynamics if any stars
Fix duplicate history with same queryParams
Fix test & remove Object.keys polyfill
Merge pull request #24 from inDream/master

Fix duplicate history with same queryParams
Decode path before recognizing.
Merge pull request #25 from xtian/unicode-routes

Decode path before recognizing.
Merge pull request #16 from spikebrehm/prepare-for-npm

Prepare for publishing to NPM
Make sure everything in dist/ is pushed
Boolean query params are now explicit and return strings
Merge pull request #26 from raytiley/explicit-boolean

Boolean query params are now explicit
New upstream version