benchmark: extend benchmark api

Some flaws appeared as the api was used more often. This extends and
better defines exactly what should happen. Also the logic has been
greatly simplified. Any existing script that relied on _bench_timer.js
has also been updated to use the new api.

Major api changes include:

* allow for toggles that don't need a parameter
* only one async test allowed per script
* script will auto exit after specified number of attempts
benchmark: additions for buffers

Micro benchmarks have been added for all Buffer methods.
src: update and order benchmarks

Because of the previous disarray of benchmarks, this commit is not meant
to be a completed task. Instead it serves a couple purposes:

* Begin organizing existing benchmarks into folders by api category
* Convert obvious benchmarks to use the new standard api

A few new micro benchmarks have also been added to help test easily
iterative pieces of functionality.