Added JavaFX 8 bindings, transactToRevision

Added support for two way binding of a Box to a Property. This permits
pretty direct use of JavaFX as a UI for boxes. The interface is
slightly complex due to having to bridge the thread-safe box system to
single threaded JavaFX, this is done by treating each binding as a
"client" to the box system, that can commit and update depending on its
own "working copy" revision index and the index of the current boxes
revision. This is similar to the system that can be used for a web
interface to boxes.

new transactToRevision method is the same as transact, but returns a
pair - the result of the transaction itself, and the Revision the
transaction created. This allows for "clients" committing to boxes to
see which revision they have committed, so they can keep a record of
which revision their "working copy" corresponds to.