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.
I'm not too concerned since these are coming straight from a test file which is checked into `__tests__`. If we change that for some reason, we shouldn't be too surprised that the tests break.