A few definitions fixes

* Use an object to represent a reference (were using a bunch of tuples)
* Capture definition regardless of if they are explicitly excluded
* Do not create a new definition reference for pluralized definitions
* Subpart scoping, where subparts can be configured in the settings -- ideally we will parse these out somehow in the future.
* Don't include any links to terms which are being defined in the same paragraph (removes the need for explicit quote checking)
* Do not include links to subterms when defining a new term. E.g. If we have the defined term "ticket", and we now have a paragraph that defined "bus ticket", "A 'bus ticket' is a ticket for the bus, only the second "ticket" should be a link)