Added length to documents.

TODO:

 - [ ] figure out why this conflicts with tree lengths
Merge remote-tracking branch 'origin/master' into document-length
Added bool definition for mock objects
Document needed bool

the len(tree) function checks to make sure that there is a root document
in the tree, and if the document had no associated requirements, it was
returning false to bool(document) even though it was a valid document.

The document class should be considered valid if it is initialized
correctly, so the __bool__ should always return true
Added a couple comments.
Merge pull request #78 from jacebrowning/document-length

Add length to Documents.
Added cache clearing to document and item.
Merge branch 'cache' into import-export