index: Support semver symbols and remove regex

This is a full rewrite of the `parse()` function, so a heavy
code-review is advised. ;)

This patch removes the usage of regular expressions for parsing slugs.
This *greatly* simplifies the codebase, thus making it much more
maintainable.  In removing the regular expressions, we also gain
support for semver symbols (for example `~^`).

Closes #2.
Add gitignore
Makefile: Add test coverage reporting

* pin dev deps
* add istanbul for coverage reporting
* refactor makefile
* ignore coverage/ in git
* fix bad `if`
Merge pull request #3 from duojs/fix/gh-2

Add support for semver symbols (^, ~, etc..)