Intermediate commit: Remove array stores

Reverts the original patch that added KeyValueArrayStore in the first place.
Intermediate commit: Reorganize kvstore packages.

All key-value-store-related code moved to o.k.mapreduce.kvstore.
* APIs in kvstore
* Client-facing implementations in kvstore.lib, for easy transport
  into kiji-mr-lib.
* Implementation details in kvstore.impl.
Intermediate commit: Make KeyValueStore[Reader] interfaces.

convert KeyValueStore and KeyValueStoreReader to interfaces.

Move static methods from KeyValueStore into purpose-built
classes like KeyValueStoreConfigSerializer, KeyValueStoreConfigValidator.

Made XmlKeyValueStoreParser work in a standalone lifecycle, removing its static class nature.
Intermediate: Remove NamespaceConfiguration.

KeyValueStoreConfiguration now just directly includes the
NamespaceConfiguration logic.
Intermediate commit: Main API refactoring.

* Converted all Options classes to Builders.
* Added a Builder and a .builder() method to all KeyValueStores,
  so you can construct them all alike.
* Factored out FileKeyValueStore into FileStoreHelper.
  File-backed stores use this through composition.
* Removed unnecessary getters/setters.
* Added further bounds checking to builders.
* Added a "finalized" state to all non-trivial stores. After you
  open() a store, you can no longer modify it with initFromConf().
* Added singleton instance getters to Empty/UnconfiguredKeyValueStore.
* Updated tests to match new API.
Private store constructors should pull arguments from builders.

This prevents inevitably creating constructors with long argument lists.
Make classes final and add annotations.
Improved constructors and factory methods for API stability.

KeyValueStoreReaderFactory API contracts made more clear through
better naming; updated uses of KeyValueStoreReaderFactory.

InternalKijiContext now closes all KeyValueStoreReaders opened through it
in its close() method.

Also improved clarity of Javadoc messages throughout.
Make FileStoreHelper publicly accessible.

Other users who want to implement HDFS-backed KeyValueStore
implementations should use this object to manage their own
files.
Final pass over javadoc, add package-info.java files.