Determine how to let class instances access each other.

In Doorstop, the following object hierarchy exists:

    Tree
       |
       Document
              |
              Item

What is the best way to:

- let `Item` instances get a reference to the `Document` and `Tree` they are a part of
- let `Document` instances get a reference to the `Tree` they are a part of

Possible options:

1. pass `Document` and `Tree` instances into methods that require them (current approach)
2. store  `Document` and `Tree` instances as attributes during object instantiation
3. store  `Document` and `Tree` instances at the module level