A WAL Provider that returns a single thread safe WAL that optionally can skip parts of our normal
interactions with HDFS.

This implementation picks a directory in HDFS based on the same mechanisms as the
FSHLogProvider. Users can configure how much interaction we have with HDFS with the
configuration property "hbase.wal.iotestprovider.operations". The value should be a comma
separated list of allowed operations:

append : edits will be written to the underlying filesystem

sync : wal syncs will result in hflush calls

fileroll : roll requests will result in creating a new file on the underlying
filesystem.

Additionally, the special cases "all" and "none" are recognized. If ommited, the value defaults
to "all." Behavior is undefined if "all" or "none" are paired with additional values. Behavior is
also undefined if values not listed above are included.

Only those operations listed will occur between the returned WAL and HDFS. All others will be
no-ops.

Note that in the case of allowing "append" operations but not allowing "fileroll", the returned
WAL will just keep writing to the same file. This won't avoid all costs associated with file
management over time, becaue the data set size may result in additional HDFS block allocations.