Added length to documents.

TODO:

 - [ ] figure out why this conflicts with tree lengths
Merge remote-tracking branch 'origin/master' into document-length
Added integration tests for importing from files.
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
Merge branch 'master' into import-export
Added stub function.
Added a couple comments.
Merge pull request #78 from jacebrowning/document-length

Add length to Documents.
Everything is good except for links.

For some reason the tests are failing when it comes to the links. I'm
not sure how I'm supposed to pass link information, probably as a
list...
Initial pass completed. links are working.

Messy version of import done.
Renaming and code consolidating

Grouped the if i: blocks together.
Renamed so I don't have so many 'attribute' variables.
Fixed error.

Tests caught this.
Added a bunch of descriptive comments. and a few todos

not sure how to handle regex's as they could vary based on project
requirement format.
Working on tests for new code
Allowing custom Item IDs.
Added a missing comment.
Added csv and tsv support

re-worked xlsx import to use same functionality as tsv and csv imports
Fixed issues with .tsv files
Made changes due to Jace's github comments