HBASE-12522 Backport of write-ahead-log refactoring and follow-ons.

Issues incorporated and incompatible changes called out on the jira.

* Cleaned up references to HLog
* Deprecates HLogKey but maintains it for compatibility
  - Moves all Writeable from WALKey to HLogKey
* Adds utility code to CoprocessorHost to help with evolving Coprocessor APIs
* RSRpcServices roll WAL call now requests the non-meta LogRoller roll all logs
  - rolls actually happen asynchronously
  - deprecated old api (and noted incompatible behavior change)
  - modified api in new Admin interface to reflect lack of return values.
* Moved WAL user facing API to "WAL"
  - only 1 sync offered
  - WALTrailer removed from API
* make provider used by the WALFactory configurable.
* Move all WAL requests to use opaque ids instead of paths
* WALProvider provides API details for implementers and handles creation of WALs.
* Refactor WALActionsListener to have a basic implementation.
* turn MetricsWAL into a WALActionsListener.
* tests that needs FSHLog implementation details use them directly, others just reference provider + factory
  - Some tests moved from Large to Medium based on run time.
* pull out wal disabling into its own no-op class
* update region open to delegate to WALFactory
* update performance test tool to allow for multiple regions
* Removed references to meta-specific wals within wal code
  - replaced with generic suffixes
  - WALFactory maintains a dedicated WALProvider for meta (and so knows about the distinction)
* maintain backwards compat on HLogPrettyPrinter and mark it deprecated.
  - made WALPrettyPrinter IA.Private in favor of `bin/hbase wal`
* move WALUtil stuff that's implementation specific to said implementation
  - WALUtil now acts as an integration point between the RegionServer and hte WAL code.

Incorporates contributions from v.himanshu and stack.

Conflicts:
	hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/WALPlayer.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/migration/NamespaceUpgrade.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/protobuf/ReplicationProtbufUtil.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/LogRoller.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/util/HMerge.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALSplitter.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/TestIOFencing.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin2.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverScannerOpenHook.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFilter.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestInvocationRecordFilter.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/fs/TestBlockReorder.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHLogRecordReader.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportExport.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDistributedLogSplitting.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLog.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSource.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationWALEntryFilters.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpoint.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpointNoMaster.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationWALReaderManager.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestFSVisitor.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMergeTool.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestSecureWAL.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALFiltering.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALMethods.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALReaderOnSecureWAL.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplitCompressed.java
	src/main/docbkx/ops_mgt.xml
HBASE-12610 Close connection in TableInputFormatBase (Solomon Duskis)
HBASE-12576 Add metrics for rolling the HLog if there are too few DN's in the write pipeline
HBASE-12490 Replace uses of setAutoFlush(boolean, boolean) (Solomon Duskis)
HBASE-12490 Replace uses of setAutoFlush(boolean, boolean) (Solomon Duskis) -- ADDENDUM to fix failing TestAsyncProcess#testHTableFailedPutAndNewPut
HBASE-12616 We lost the linked list commands in recent usage refactoring
HBASE-12614 Potentially unclosed StoreFile(s) in DefaultCompactor#compact()
HBASE-12398 Region isn't assigned in an extreme race condition (Jeffrey Zhong)
Update pom.xml version for 0.99.2
Blanket update of src/main/docbkx from master
Update CHANGES.txt for 0.99.2
HBASE-12618 Add 'Namespace' to headers while displaying user permissions (Ashish Singhi)
HBASE-12617 Running IntegrationTestBigLinkedList against cluster getting not an instance of org.apache.hadoop.hbase.MiniHBaseCluster

(cherry picked from commit d6b1d8cbf7e11b51523cd0290243bce9cb22eb79)
HBASE-12624 Remove rename_snapshot.rb from code as there is no equivalent renameSnapshot api in Admin class (Ashish Singhi)
HBASE-11639 [Visibility controller] Replicate the visibility of Cells as
strings : Addendum adding break (Ram)
Add timeout on TestDefaultLoadBalancer#testBalancerCluster to see if we can stop it hanging as a zombie in precommit builds
HBASE-12431 Use of getColumnLatestCell(byte[], int, int, byte[], int, int) is Not Thread Safe (Jingcheng Du)

(cherry picked from commit c45772e76a581838ea89ff303d0ff67ceaa82845)
HBASE-12634 Fix the AccessController#requireGlobalPermission(ns) with NS

Signed-off-by: Matteo Bertozzi <matteo.bertozzi@cloudera.com>
HBASE-12204 Backport HBASE-12016 'Reduce number of versions in Meta table. Make it configurable' to branch-1
HBASE-12635 Delete acl notify znode of table after the table is deleted (Liu Shaohui)