[0.2.0] major refactor, optimize #resolve, separate tests fixes #1

Migrate tests to separate file, use mocha for test running.

Isolate scope in module for client-side deployment, export to
module/exports or global object.

Optimize routes for memory efficiency, and therefore deoptimize `#add` and
`#remove` for raw speed.

Small optimizations to `#toString` via logarithmic string repeat and
separated recursion.

Minor optimization to `#remove` via direct allocation of array slab.

Heavy optimization to `#resolve` via rolling best match, branch pruning,
reduced array cloning.

Potentially backwards incompatible universal addition of data field to
resolve output for object shape consistency (hidden class) optimization
in V8.