Process a run of data-state characters all at once, with a bytewise scan

Speeds up tokenizing plain text by 65% to 85%, and real pages by 15% to 20%.

An input of entirely tags gets about 5% slower.
Move util/buffer_queue.rs to tokenizer/
Rework empty buffer handling

Speeds things up by a few percent.
Add a program to run a single benchmark once, for profiling
Add another uncommitted benchmark
Rename util/ascii.rs -> util/str.rs
Reserve a little space in each string buffer when we allocate it

Speeds up real pages by a few percent.
Profile how much time is spent in each tokenizer state
Move ignore_bom out of the get_char hot path

Speedup: about 5-7%
Make exact-errors benchmarks optional

These aren't really supposed to be fast, and they more than double the run time
of the benchmark suite.
Remove unnecessary clone in tokenizer benchmark
Save benchmark metrics as JSON
Add a simple multi-branch benchmark script
Rust upgrade
Convert ~[T] to Vec<T>

Except where we need it for the JSON library.
Benchmark some small-ish HTML fragments
Benchmark a tiny HTML fragment
Work in progress: Use SSE 4.2 string instructions for data_span