Traversals are executed in one statement

o Because of that org.neo4j.graph.traversal.Traverser is now a
  ResourceIterable so that it produces closeable traverser iterators.
o Introduced Resource which extends AutoCloseable which has got a
  close() method that doesn't throw any checked exceptions. That made
  sense since ResourceIterator had a close() method like that and if you
  would like to use the "closeable" aspect such an iterator as an argument
  you previously passed it in as Closeable or AutoCloseable and caught
  IOException just re-throw it as RuntimeException, not that such
  IOException would occur of course.
o Kernel API statements also extend Resource instead of AutoCloseable,
  since statements were often used together with an iterator to form a
  ResourceIterator (which had an exception-less close() method). See the
  point above for more information.
o A traverser that reaches the end will also automatically close itself.
o The REST traversals do not use a single statement, since they use multiple
  transactions to page results. The argument here being that the prime
  mechanism for high-performance traversals is via server extensions, not
  via the REST traversal API. It does not seem worth the effort, right now
  at least, to implement single-statement traversals for the REST API.
Some cleanup in the traversal framework.

o AbstractTraverser, BiDirectionalTraverser and TraverserImpl are now reduced to
  DefaultTraverser and a Factory.
o TraversalDescriptionImpl is now called MonoDirectionalTraversalDescription, which
  differntiates it more clearly from BiDirectionalTraversalDescription.
o The hard dependency on mono directional sub-traverers for the bi-directional
  traverser is now asserted while the traverser is being built, which give a more
  helpful error message.
Introduces Provider as a generic interface, similar to Factory but with less strict contract for what it returns. ThreadToStatementContextProvider is now a Provider of type Statement
Merge pull request #1425 from jakewins/2.0-traversal-statement

2.0 traversal statement