HBASE-10378 Refactor WAL and WALProvider relationship to handle wal delegation at region open.

* make provider used by the WALFactory configurable.
* Move all WAL requests to use opaque ids instead of paths
* WALProvider now its own API that allows creation of WALs
* Refactor WALActionsListener to have a basic implementation.
* turn MetricsWAL into a WALActionsListener.
* update the test that needs FSHLog implementation details to use them directly
* 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
* fixed TestDistributedLogSplitting - requires multiple WALs but roller only counts synced edits; added back syncs.
HBASE-5699 Add a WAL provider that groups wal edits by region.

* Uses a grouping strategy to project region ids to group ids
* Comes with default strategy of identity (one wal per region)
* Adds a bounded version of the grouping provider that limits things to a configurable number of groups.