DDLSHELL-38. Support for validated column reader/writer schemas.

Support for tables with layout-1.3.
** CreateTableCommand now uses layout-1.3 in system-2.0 and up.
** It still uses layout-1.2 in system-1.0.
** Added "CellSchemaContext" to provide context about the current table to subcommands
   (e.g., ColumnClause and SchemaSpec) that operate on it. Modified several
   classes to "thread through" CellSchemaContexts from the top-level TableDDLCommand
   into the associated child AST elements.
** KijiSystem can now interact with the KijiSchemaTable.
** KijiSystem can now query the instance data format for a KijiURI.
** Added implementations to KijiSystem, MockKijiSystem.

Adds capability: Set metatable properties for tables.
** Adds getMeta() and setMeta() to KijiSystem.
** TableDDLCommand has a new metadata alteration step (applyMetaUpdates()).
** CreateTableCommand / TableProperties use this step.
**** Initial number of regions is recorded.
**** User's preference for validation method is recorded.
** DDLParser allows you to specify a preferred validation method for cols in a table.
** AbstractDumpDDLCommand retrieves number of regions for use in DUMP DDL.
** Adds unit and integration tests for new methods in KijiSystem implementations.
** Adds an integration test for recording NUMREGIONS in CREATE TABLE.

SchemaSpec is now table layout-aware; in layout-1.2 it populates "old" fields
for the single schema per column/map family. In layout-1.3 it populates new
schema-validating fields.

Added PrintSchemaForClass util to run in a forked JVM; the ClassSchemaSpec
invokes this in a subprocess to capture the schema associated with a
SpecificRecord. Added a new unit test.

ForkJvm now allows clients to override stdout when they call forkJvm(), to
capture stdout (e.g., to a ByteArrayOutputStream behind a PrintStream).
Added unit test case.

Add ALTER TABLE.. ADD SCHEMA.. FOR COLUMN.
** Adds AlterTableAddColumnSchemaCommand.
** Deprecates AlterTableSetColumnSchemaCommand; SET SCHEMA = .. now works like
   ADD SCHEMA in layout-1.3 and up.
** Modifies the SchemaSpec trait to have separate methods for creating/replacing a
   CellSchema, and modifying an existing one to add a new schema to the list.

Add ALTER TABLE... ADD SCHEMA .. FOR FAMILY.
** Adds AlterTableAddFamilySchemaCommand.
** Deprecates AlterTableSetFamilySchemaCommand in layout-1.3.

Add command: ALTER TABLE.. DROP SCHEMA.. FOR COLUMN.
** Allows deregistering of schemas from reader/writer lists in a column.
** Added AlterTableDropColumnSchemaCommand.
** Added KijiSystem.getSchemaId() to get schema Ids without registering new ones.
** Added dropFromCellSchema() method to SchemaSpec and its subclasses.

Add ALTER TABLE.. DROP SCHEMA.. FOR FAMILY command.

ALTER TABLE { ADD | DROP } SCHEMA support schema ids, not just literal schemas.
** Allow ALTER TABLE.. { ADD | DROP } SCHEMA commands to reference
   schemas by id (... ADD SCHEMA ID <number> FOR COLUMN...).

CREATE TABLE syntax is modified to allow omitting the schema definition.
You may now create "schemaless" columns and add readers and writers later.

DUMP DDL command uses new CellSchema definitions.
** AbstractDumpDDLCommand now dumps ALTER TABLE.. ADD SCHEMA statements.
** In a layout-validating table, we now dump all schemas (Readers and
   writers) associated with the table at creation time.

DESCRIBE TABLE explains new CellSchema fields.
Add DESCRIBE TABLE t COLUMN c SHOW SCHEMAS.
** Adds a command to show schemas within a column of a table.

Adds new syntax to help text in InputProcessor.

Adds TestSchemaValidation.