Initialize transactions on master as late as possible.

o Remote transaction is no longer created on enlist, because read transactions are now enlisted as well, plummeting performance.
  Instead, the slave tracks a flag for whether the remote transaction is initialized or not, and then only initializes on two points,
  either when the first lock is grabbed, or right before the transaction is pushed to the master.

o This part of the code can be further refactored once JTA becomes an orthogonal concern and the domain logic for HA is all contained
  in one data source. Until then, this will hold the fort. For an intro to the conundrum here, see the comment in TransactionState around
  the methods tracking if the remote tranasction is initialized.

o Added Monitors and test for HA slaves pull update behavior.

--
Improve semantic checking of identifier declaration in patterns
Prevent the use of parameter maps in MATCH and MERGE
Merge pull request #1527 from jakewins/tx-kill

Initialize transactions on master as late as possible.
Merge pull request #1542 from cleishm/prevent-param-map-matching

Prevent the use of parameter maps in MATCH and MERGE
Moved newest DumpProcessInformation to kernel

from ha-robustness. There was a problem having both where it was unknown
which one it would pick and only one of them had some recent changes. Now
there's only one DumpProcessInformation.
Attempt to resolve master conundrum in ha robustness.
License headers
Removed annoying and for the time being unnecessary debug message that polluted the log
Removes the need for HA snapshots on cluster join

Slaves now will respond to masterIsAvailable events with slaveIsAvailable
 always. That means that when an instance joins, it will see all the
 availability events that make up the cluster, bringing it up to date.
 This removes the need for snapshot to be received on cluster join.