Cheaper way of telling wether or not a RecordState has changes
Defers creation of header information until commit if there are changes
Defers LockGroup creation until we see that there are changes to commit
Reuses tx state --> record state visitor
Reuses command list for extracted commands
Removes assumption about platform path delimiter from tests
Implements ArrayCollection that has efficient clear()
Goes to end of line after each csv input entity
Merge pull request #3287 from tinwelint/2.2-lower-tx-init-overhead

[2.2] lower tx init overhead
Rewrite plans with Apply/Optional/Expand to use OptionalExpand instead.
Merge pull request #3305 from pontusmelke/unnest-optional

[2.2] Rewrite plans with Apply/Optional/Expand to use OptionalExpand instead.
Make OuterHashJoin able to work on multiple keys
Plan OPTIONAL MATCH using both Apply/Optional and OuterJoin