Removing/disabling old rowlog code.

The rowlog related packages have been removed completely: global/rowlog/*, tools/rowlog-visualizer, and the kauri rowlog module. All references in pom's to the rowlog have been removed.

If you grep the code, there's still quite some rowlog traces left:
 * Tests which relied on indexing happening, or that test the linkindex, have been commented out compeletly. They would not run anyway, and there's little advantage to making them compile: with the references to the rowlog left in place, it will be easier to migrate them to the new solution. Same holds for the RowLogMessageListener's (the IndexUpdater, the LinkIndexUpdater)
 * Things that need adjustment when the new rowlog solution is in place are marked with "FIXME ROWLOG REFACTORING"
Add dummy versions of obsolete rowlog CLI tools

Allow packaging of Lily which is dependent on the existence of
obsoleted rowlog CLI tools.
Removing locking in the repository write paths.

And removed the global/rowlock project.

The locking was based on the class RowLocker, which locked and unlocked by means of a checkAndPut call on HBase that wrote a timestamp (for lock expiry) combined with some random data to avoid lock stealing.

Instead, we now use optimistic locking. We can do this because we don't have the rowlog and execution of the WAL secondary actions in the write path anymore, which were the most important reason to have locking in there.

Introduced a new system field called occ ('optimistic concurrency control'). Basically a kind of version counter, but named occ because we already had a field called version with different semantics.

Number of ops for a record create is now 1 get + 1 checkAndPut. From here on, it will only get slower again (except for optimizing the scope of the get and put, and for having create-only records).

Fine points:
 * decorators & updatehooks are not executed within the lock anymore, so these should be careful with their side-effects
 * blob-related code is not executed within locks anymore, afaics behavior should stay correct
 * no RecordLockedException anymore, instead ConcurrentRecordUpdateException. BalancingAndRetryingLilyConnection has been adjusted in this regard.
 * the clearData() method called during record deletion (and also in case of record reincarnation, to be sure) is not executed within a lock anymore, so can potentially run concurrently with record re-creation. The method has therefore been adjusted to only treat the old versions. For the system fields I changed the deleteColumn calls to deleteColumns calls, since the former only deletes the latest version which was a bug.
Enable replication for embedded hbase.

thus for launch-test-lily, launch-hadoop and the hbase's launched embedded in tests.
Write payload & enable replication.

Write the recordevent MQ payload to a system column in the data cf. Goal is that the payload would become part of the waledit in the hlog, so that it is available to things reading the hlog. Currently only for create/update/update-mutable, not for deletes, will figure out later how we can get that in the waledit for that case.

Enabled replication (scope=1) for the data cf of the record table.
Introducing HBase-replication feeded indexing.

Adding sep (side effect processor -- name might change). This is an experiment to replace the rowlog MQ by instead listening to the HBase replication feed. This commit includes the minimal changes to make this work:

 * IndexerAdmin will add/remove replication peers to HBase when an index is added/removed (SepModel)
 * IndexerWorker will start a "fake hregionserver" that consumes the replication feed and delivers messages to the indexer (SepEventSlave)
 * It is assumed the payload is written under a certain key, currently only waledits which contain such a payload are forwarded to the listeners
 * Functionally missing is at least handling of delete events and creation of re-index events for denormalized data

It is recommended to configure your hbase to set replication.source.ratio to 1 for smaller clusters and to set replication.source.nb.capacity to for example 200 to avoid very large batches (default is 25000). For launch-test-lily 200 is the default.
Fix pointer to parent pom.
Add safeguards in partitioning of KeyValues

* Ensure that the partition count is valid
* Correctly handle a hashCode that is Integer.MIN_VALUE
Add support for delete events via payload column
Remove replication peer for index when deleting index
LILY-909 - Add SEP-based equivalent of waitWalAndMQMessagesProcessed

Addition of metrics for SEP processing, which is also used to allow
waiting on processing of all SEP indexing actions, which allows
for the equivalent of LilyProxy.waitWalAndMQMessagesProcessed
LILY-909 - Filter out events that are not in the record table
Add SEP event publishing to IndexUpdater
Avoid dependency issues in SepEvntSlaveTest

Don't start the HBase RPC server within the test case in order to
avoid pulling in all HBase dependencies in the test.
hbase cleanup / reset lily state: remove hbase replicas.
Change version to 1.4-SEP-SNAPSHOT to avoid confusion with master.
Add subscription timestamp to indexes

All SEP events that are processed are ignored unless their write
timestamp is equal or later than the index subscription timestamp
Fix dependency and broken import for commons-lang
Re-enable IndexerTest
Fix broken IndexerApiTest based on SEP changes

Don't wait on SEP events (which will never come) in the
IndexerApiTest. Also update the minimum expected time difference
between WAL write time and Lily operation to 50 milliseconds when
waiting on SEP operations to be executed.