[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.

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