[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,
reduced array cloning. Branch pruning is not a viable option.

Potentially backwards incompatible universal addition of data field to
resolve output for object shape consistency (hidden class) optimization
in V8.

Signed-off-by: Eli Skeggs <skeggse@gmail.com>