Move API version number from BaseTable to Schema

In FitsReader, move reading the AFW_TABLE_VERSION header key into the
Schema-from-metadata constructor.
In FitsWriter, use the version attached to the table schema to write the
metadata.
Add constructors to Schema and SchemaMapper to set version immediately.
Switch between '.' and '_' separators in Schema, depending on version.
Remove workaround in centroid and shape slot definers.

Now that SubSchema works properly for version 1 tables, we can use it when
defining slots.  Also moved the implementation of the slot definers to the .cc file,
and fixed name used for point covariance terms (previously incorrect in both the
test code and the old implementation).
Move Box2I and Box2D Doxygen comments to header.

Also removed trailing whitespace and updated copyright dates.
Remove old slot definers from SourceTable
Need to apply aliases in SubSchema implicit conversions
Clean up some tests and make sure they're executable
Switch to new slot definition classes, using aliases for version>0
Don't need to explicitly copy MatchVector slots; they're now in Schema