Internal Citations account for more situations

This resolves #1 by creating a more sophisticated grammar (which can be pulled apart a bit easier.) It also adds the ability for parse results to keep track of their original position within the parsed text, and to remove any whitespace associated with the offsets when parsing has finished.

Missing some unit tests for two new methods, but there are integration tests which verify them.