Add bidirectional parent-children for Account

The following changes were necessary:

* Add `children` property to Account
* Make Account inherit from ::std::enable_shared_from_this<Account>
* Specify ODB-specific `pointer(std::shared_ptr)` for Account
* Change pointers to Account to shared_ptr (from unique_ptr)
* Wrap accounts retrieval into an ODB session