switch to add the benchmark function at construction time

this makes it possible to build complete benchmarks without running them
allow .reporter() to just take a Function
add a benchmark class for running benchmarks in separate processes.
add batch and table reporter

my bad I deleted a few commits by mistake hence why this one is so big
add batch examples
ensure child processes are cleaned up
clean up example
add basic title to table reporters output

  same process batch
  ┌────────┬──────────────┬──────────────┬───────────┐
  │        │   total (ms) │ average (ns) │  diff (%) │
  ├────────┼──────────────┼──────────────┼───────────┤
  │ sync   │          100 │     10006015 │         - │
  │ async  │          110 │     11030354 │        10 │
  └────────┴──────────────┴──────────────┴───────────┘
add a cli for running batches
add support for passing args to the bench process

this makes it easier to run multiple implementations through the same benchmark. See example/compare/index.js
improve number formating in table reporter

  compare x10
  ┌────────────┬──────────────┬──────────────┬───────────┐
  │            │   total (ms) │ average (ns) │  diff (%) │
  ├────────────┼──────────────┼──────────────┼───────────┤
  │ fast.js    │           12 │    1,155,781 │         - │
  │ medium.js  │          512 │   51,160,086 │     4,326 │
  │ slow.js    │        1,010 │  101,032,185 │     8,641 │
  └────────────┴──────────────┴──────────────┴───────────┘
stop catching load bench load errors

there are more ways than one for requiring a benchmark to cause an error and the default error messages are usually pretty good anyway
add request suite example
add suport for loading several implementations in one benchmark with batch.load()
rm fixed widths in table reporter
add support for loading implementations from the cli
add --reporters flag to cli

bench --reporters

  cli
  json
  table
setImmediate instead of nextTick for node v0.10.x

node is dropping support for nexTick as a trampoline
pull out the lambda

perhaps it reduces gc runs slightly
seperate features designed for making comparions into a seperate class

it was making the batch class hard to reason about