Use separate builder to load nodes, added User
To avoid passing Txn's directly to Nodes to allow them to be constructed, we now use a separate XXXBuilder named after the node type. This can then be constructed with a Txn, and used to build one or more of the Nodes. It's not great, since we just use a naming convention, but if we come up with a better way we can have a new trait other than Node that uses a better pattern, e.g. typeclasses etc. Used this to reimplement User and ExtendedSession, not yet tested. This is also a decent pattern for even non-persisted nodes.