CDK-342: Address Tom's review feedback.

The major change is that FieldMapping has been moved to the API. The
problem was that FM was leaked by ColumnMapping. To fix this, we needed
to either move FieldMapping to the API or remove the FM methods from
ColumnMapping. Removing the methods requires splitting ColumnMapping
into two: a generic mapping, RecordMapping, and a specific subclass,
BigTableMapping. The problem with this approach is that it introduces a
class without an interface. No implementations other than the hidden
BigTableMapping would be supportable for consistency checks,
serialization, etc. The clean solution for now is to expose FieldMapping
and generalize ColumnMapping later.