Tests for VCFTable and deriveColumns()

This:

- Adds a `Utils` test class and uses it to simplify some test code.
- Moves `deriveColumns` into vcf.tools.js and adds a unit test for it.
- Adds unit tests for VCFTable
- Changes VCFTable to use object equality for selected headers, rather than reference equality (helpful for testing, and seems more correct).
- Removes some unused `props` & adds `propTypes` for others.
at all concerned with brittleness of having all of these numbers here? any world where we just programmatically check them against what's in the actual VCF? or would that involve rebuilding too much of the logic that we're testing?