Some changes to this patch:
- Updated to current trunk
- Changes fields to tags
- Amended test cases to easier examples
Some more changes are required:
- The tests currently aren't passing. I'm not sure if this is my changes, or other changes in TaggedDocument.
- I think the abstract strings should only be built when the end of document is reached. Currently, we have many string appends occurring (for each call to saveToAbstract()). saveToAbstract() will be called for each block of text.