See existing discussion on this issue in #237.
The Cluster.database back reference is not like other database-related back references because:
- the Database constructor takes a database path instead of a handle (like other database-related objects)
- The Database class actually uses the handle as state to determine if the database needs closing.
We should research and decide how to handle this.