Change MergeResult to be iterable

o Move implementation to org.neo4j.kernel.impl.merge
o Fix InMemoryIndex to not apply updates idempotently in online mode
o Make KernelTransaction.assertOpen() public
o Make Statement.assertOpen() public
o Javadocs
o Make NotInTxException extend IllegalStateException instead of being a plain RuntimeException