Allow column types to be specified in the config file
Use variable-width columns part 1

Sorry for the massive commit. This makes all of the needed changes to
properly reference columns with mixed widths. The core loop still assumes
everything is a float32.
Remove support for 64-bit types in the schema

See the comment in the source. We'll need to be a bit more careful when
we decide to support them. Even now we're at risk of overflowing at
float64 accumulator.
Copy HasEqualJSON into the benchmark suite

Let me know if you have a preference for how to DRY this.
Don't double-populate our benchmark tables
Add assertions to ensure our benchmarks are producing the correct results

When I'm doing a big refactor I'm skeptical that these are still
producing the correct results.
Don't assume every column is a Cell in the core scan & filters

Based on my adhoc benchmarking on C3, putting a switch statement in the
middle of the loop is quite expensive =( We'll need to revisit it more rigorously.

Sq into
Get rid of the Cell data type