SCHEMA-387. Provide validators for schema evolution

issue: https://jira.kiji.org/browse/SCHEMA-387
review: https://review.kiji.org/r/578
SCHEMA-380. Paging enabled map-type families should imply paging on all qualifiers in the map-type family

- Permit the version pager on columns from map-type families with paging enabled.

issue: https://jira.kiji.org/browse/SCHEMA-380
review: https://review.kiji.org/r/601
SCHEMA-389. Add schema set validators.

issue: https://jira.kiji.org/browse/SCHEMA-389
review: https://review.kiji.org/r/595
SCHEMA-388. KijiRowScanner should handle underlying HBase ScannerTimeoutException.

- Extends Kiji row scanner options with:
  - RowCaching : # of rows to fetch per RPC to the region server.
  - ReopenScannerOnTimeout : automatically handle ScannerTimeoutException by
    re-opening the HBase scanner on timeout.

There is an integration test to validate these features.
However, the test is not included in this change:
it requires a specific configuration on the HBase cluster,
namely setting hbase.regionserver.scanner.period to a low value.
See SCHEMA-393 and FAKEHBASE-9.

issue: https://jira.kiji.org/browse/SCHEMA-388
review: https://review.kiji.org/r/600
SCHEMA-385. Extends table layout/metdata tables with per-column reader/writer schemas

issue: https://jira.kiji.org/browse/SCHEMA-385
review: https://review.kiji.org/r/606
SCHEMA-411. Commands not being logged because checkin server URL was null.

Since the BENTO_CHECKIN_SERVER wasn't being exported, the checkin client was
getting a null reference to the environment variable hence the command wasn't
being logged.
SCHEMA-405. Adds KijiRowKeyComponents.

issue: https://jira.kiji.org/browse/SCHEMA-405
review: https://review.kiji.org/r/612
SCHEMA-413. KijiRowKeyComponents should implement equals and hashcode.

Also fixes an error when passing in null as a key component.
Prevents clever byte[] mutabilitiy.

issue: https://jira.kiji.org/browse/SCHEMA-413
review: https://review.kiji.org/r/627
SCHEMA-384. Track clients of a Kiji instance and clients of opened Kiji tables

- ZooKeeperClient that handles ZooKeeper disconnects.
- TableLayoutMonitor providing trackers for:
- table layout updates
- table users (client processes).

issue: https://jira.kiji.org/browse/SCHEMA-384
review: https://review.kiji.org/r/626
SCHEMA-418. ZooKeeperClient logs are too verbose

Lowers logging verbosity of ZooKeeperClient from info to debug.

issue: https://jira.kiji.org/browse/SCHEMA-418
review: https://review.kiji.org/r/643
SCHEMA-419. Bogus log statement in FormattedEntityId

Fixes log statement in FormattedEntityId.

review: https://review.kiji.org/r/633
issue: https://jira.kiji.org/browse/SCHEMA-419
contributed-by: jeffkole (Jeff Kolesky, jeff.kolesky@gmail.com)
SCHEMA-409. Add caching of AvroCellEncoders to table writers.

issue: https://jira.kiji.org/browse/SCHEMA-409
review: https://review.kiji.org/r/623
SCHEMA-416. HBaseKijiRowScanner imports Arrays from a scala package

Fixed to use java.util.Arrays.

issue: https://jira.kiji.org/browse/SCHEMA-416
review: https://review.kiji.org/r/648
SCHEMA-420. KijiTableLayout#validateCellSchema tolerates null schema values.

review: https://review.kiji.org/r/652
issue: https://jira.kiji.org/SCHEMA-420
reviewers: taton,robertchu
SCHEMA-407. Provide easy to use helper classes around pagers.

Adds iterators wrapping KijiRowData.getPager() to:
 - iterate through the versions in a column;
 - iterate through the qualifier names in a map-type family;
 - iterate through the versions in all columns in a map-type family.

issue: https://jira.kiji.org/browse/SCHEMA-407
review: https://review.kiji.org/r/615