SCHEMA-498. Need a utility class to uniquely identify a KijiSchema client.

Adds a utility class to uniquely identify a JVM.

issue: https://jira.kiji.org/browse/SCHEMA-498
review: https://review.kiji.org/r/870
SCHEMA-499. HBaseKiji owns a (potentially shared) ZooKeeperClient.

- Adds HBaseKiji.getZKClient() with an integration test.
- Implements HBaseKiji.toString()
- Various logging and preconditions cleanup/fixes.

issue: https://jira.kiji.org/browse/SCHEMA-499
review: https://review.kiji.org/r/871
Updates archetype README to be filtered correctly.

Reviewed by: lsheng
SCHEMA-501. TableLayoutMonitor user tracker reports a multimap (user ID -> layout IDs).

- Update the way clients registers themselves as users of a table layout.
- Add TableLayoutMonitor.unregisterTableUser().
- Add and improve unit-tests for TableLayoutMonitor.
- Tiny fixes in ZooKeeperClient.

issue: https://jira.kiji.org/browse/SCHEMA-501
review: https://review.kiji.org/r/878
SCHEMA-502. Create tool base class and move common CLI tool functions there.

All the CLI tools extend from the KijiClientTest but these tools all have the
same common methods that should be housed in the common KijiToolTest class. Also
refactored the TestVersionTool to use these methods as it was not re-using the
common methods that were previously duplicated in the other tool test classes.

Reviewer: taton
SCHEMA-482. Plug ZooKeeper layout notifications in HBaseKijiTable.

 - HBaseKijiTable registers itself as a live client of a Kiji table.
 - HBaseKijiTable subscribes to layout notification from ZooKeeper.
 - Adds an integration test for the general behavior.

issue: https://jira.kiji.org/browse/SCHEMA-482
review: https://review.kiji.org/r/862
SCHEMA-41. 'kiji layout' should separate versions with newline.

Reviewed by: taton
SCHEMA-335. FormattedEntityId does not support a null salt.

Also fixes SCHEMA-489 (NPE in KijiTableLayout if RowKeyFormat2.salt is null).
SCHEMA-436. Table layout updates must push notifications to ZooKeeper

 - Introduce HBaseTableLayoutUpdater that should eventually handle all
   of the table layout updating process.
 - Minimally plug the layout updater into HBaseKiji.modifyTableLayout()
 - Adds an integration that validates HBaseKiji.modifyTableLayout().

issue: https://jira.kiji.org/browse/SCHEMA-436
review: https://review.kiji.org/r/888
SCHEMA-335. Enable nullable 'salt' field in RowKeyFormat2.

Removing the possibility for this field to be null is a regression;
If the user selects RowKeyEncoding.RAW, this field is ignored and may
be set to null. This is explicitly done by the Kiji shell.
Set version to 1.2.0-SNAPSHOT before release.
SCHEMA-507. Fix the documentation for KijiTableKVDB.

When the key doesn't exist in a KijiTableKeyValueDatabase, an IOException
is thrown instead of returning null. This should be fixed in a future
version but for now, let's fix the documentation.