SCHEMA-40. Add audience annotations to classes.

Adds audience annotations to all classes.
  see github.com/kijiproject/annotations
Marks as many classes as 'final' as possible.
Moved ZooKeeperLock and ZooKeeperLockFactory into HBaseSchemaTable.
Removed ColumnNameTranslator subclass used in a single test that
  would be hard to maintain with final APIs.
Move TestHBaseSchemaTable into the proper package.

Signed-off-by: Milo <milo@wibidata.com>
SCHEMA-55. Move kiji-schema into a submodule.

Prepare for SCHEMA-52 (multiple Hadoop distro support) by
setting up KijiSchema as a multi-module build.

* Adds a kiji-schema-root top-level pom file.
* Moves all existing kiji-schema code to the kiji-schema/ module.
* Updates /bin/kiji to refer to new location for the KijiSchema
  package.
* Updates kiji-schema/pom.xml to refer to multi-module parent.
* Updates kiji-schema assembly release.xml to use top-level NOTICE,
  LICENSE, and README files.
* Adds clones of src/main/checkstyle so 'mvn verify' works at the
  top level.
SCHEMA-63. Implement service registry backend for tools.

Incorporates SCHEMA-64 (Migrate KijiSchema tools to service registry backend).

* Tools are no longer statically configured in the bin/kiji script. They
  are discovered using the kiji-delegation "Lookup" service.
* All tools must implement KijiTool and list themselves as providers in
  META-INF/services/org.kiji.schema.tools.KijiTool.

Implementation changes:
* Added dependency on kiji-delegation from KijiSchema.
* Added public API KijiToolLauncher to provide a universal main method for
  launching tools.
* KijiTool is now a simple public interface for all tools.
* The previous "KijiTool" abstract class is renamed "OpenedKijiTool."
  This and BaseTool remain as Framework-level APIs that extend KijiTool.
* KijiTools do not get run through ToolRunner. All tool main() methods are
  still provided for convenience, but they use KijiToolLauncher now.
* IntegrationHelper now uses KijiToolLauncher, not Hadoop's ToolRunner.
* Added a unit test for KijiToolLauncher.
* Added a 'help' tool (HelpTool) that dynamically locates tools and prints
  their names and descriptions.
* Cleaned up o.k.s.util.Resources to be thread safe and to provide an API
  to locate text-based resources.
* Verbose help text from src/main/scripts/kiji has been put in
  src/main/resources/.../HelpTool.envHelp.txt, for use by HelpTool.

Signed-off-by: Christophe Taton <taton@wibidata.com>
SCHEMA-28. Removed KijiDataWrapper and its subclasses.

Also:
  - Refactored KijiCellEncoders & KijiCellDecoders.
  - Refactored KijiTableWriter & KijiRowData APIs.
  - Promote use of KijiURIs.
  - Introduce Fake HBase.

Signed-off-by: Aaron Kimball <aaron@wibidata.com>
SCHEMA-7. Add metadata tool to CLI. Implements backup and restore functionality.

Signed-off-by: Lee Sheng <lsheng@wibidata.com>
SCHEMA-71. Close leaking scanners in tests.

IntegrationTestKijiTableOutputFormat opens scanner resources that are not
closed.

Related to this, our log4j.properties file on the test classpath was not
using the DEBUG level for classes that print c'tor stacktraces in leaking
finalizers.

Turning on the DEBUG level for all of org.kiji.schema is too noisy on stderr,
because of the KijiCreation/DeletionThreads. But we can selectively create
separate loggers used by the finalizer cleanup check code; these loggers
are now enabled in debug mode during tests.
SCHEMA-72. IntegrationTestHBaseTableKeyValueDatabase leaks an HTable.
SCHEMA-88. KijiClientTest should isolate test instances between classes.

Classes that had hard-coded instance names referring to fake-hbase instances
could interfere with tests that inherit from KijiClientTest. This change
ensures that tests inheriting from KijiClientTest get class-specific instance
names.
SCHEMA-89. Remove PII from test data.
SCHEMA-86. Use dependency injection for HBaseFactory.

Signed-off-by: Christophe Taton <taton@wibidata.com>
SCHEMA-56. Add bridge API to KijiSchema build.
SCHEMA-57. Add CDH4 bridge implementation.
SCHEMA-58. Add Apache Hadoop 1.x bridge implementation.
SCHEMA-60. Add bridge API method implementations.

Implement bridge API methods necessary to satisfy compatibility
between CDH4 and Apache Hadoop 1.x.

Adds a SchemaPlatformBridge implementation based on Hadoop 1.x that
always volunteers to be chosen; this performs the most basic handling
of compatibility, so hopefully it provides a useful catch-all for
versions that slip through the cracks.
SCHEMA-60. Multiple platform profiles for KijiSchema.

KijiSchema can now be built against multiple Hadoop platforms.
By default, it is compiled against CDH4. You can select the
compilation & test platform by running:

  mvn clean install # default; selects cdh4
  mvn clean install -Dplatform=hadoop1

Via the bridge API, the resulting package will run against either
CDH4 or Apache Hadoop 1.x.
SCHEMA-52. Support multiple Hadoop distributions.

Final work on the KijiSchema side to support multiple distributions.
* Renamed platform-bridge to platform-api.
* Renamed cdh4-bridge to cdh4mr1-bridge.
* Updated pom: default CDH4 compilation dependencies are marked
  optional to prevent transitive inheritence;  clients must explicitly
  choose a platform.
SCHEMA-91. Unify caching of SchemaPlatformBridge instances.

Signed-off-by: Milo <milo@wibidata.com>
SCHEMA-93. Reintroduce org.kiji.schema.mapreduce package in @Deprecated form.

The SCHEMA-28 patch removed org.kiji.schema.mapreduce from KijiSchema
in preparation for the introduction of KijiMapReduce. In order to
support intermediate releases of KijiSchema without KijiMapReduce,
this package has been reinstated in @Deprecated form.

The KijiTableOutputFormat is permanently gone; you should use a regular
KijiTableWriter to send writes directly to the Kiji table, without using
a ContextKijiTAbleWriter.

Signed-off-by: Milo <milo@wibidata.com>
SCHEMA-94. Register MetaDataTool in KijiTool service registry.
Set properties for release.