cypher performance enhancements

rewrote pathimpl
replaced Iterator() with Iterator.empty
replaced List() with List.empty
replaced Seq() with Nil
replaced seq.size with alternative predicates
Fixes a rare test timing issue

Multiple threads tried modifying the same unsynchronized ArrayList. This
created a race condition seen on certain machines/OSes in rare occasions.
Refactored to have an internal class for the thread, each instance having
a volatile field with the result instead.
Adding support for now('ms')
Changed now('ms') to timestamp()
Rename classes in server java rest example to make it less confusing.
Adds debugging output for test start and end in HaBeanIT, fixes slightly LoggerRule
Readds test-logback.xml
Merge pull request #665 from tinwelint/fix-flappy-get-or-create-test

Fixes a rare test timing issue
Merge pull request #660 from systay/timestamp

Adds timestamp()
cypher performance part2

especially around paths
taking collection types into account
taking PathImpl into account
using Array to build up the node and rel collections in PathImpl
using collections.mutable.OpenHashMap in MutableMaps
Merge pull request #654 from jexp/cypher-performance

cypher performance enhancements
Temporarily ignore test in HaBeanIT pending investigation
Removes duplicate test that was also causing expected failures
Shuts down cluster manager in BackupHaIT, tries to fix port in use errors
Moves ForeignStoreIdIT from default interface to localhost
Changes port in ForeignStoreIdIT to work around conflicts in CI