Refactor: inline StringHelper into Parser.
Add Parser.parse_tags
Add Entry#tag.
Refactor parser_integration_spec slightly to use child referencing.
Reintroduce ParentHound in preparation for more complex tag parsing.
Move #parse_entry into EntryParser (was ParentHound)
Add pending spec for referencing without trailing tags.
Support trailing tags:

* `Entry`:
    - initialize with text and trailing_tags as well.
    - add `#text` (reader) and `#text_with_trailing_tags` to support referencing with either
    - add `#type` that delegates to subclass::TYPE constant, so that TYPE can be referenced
      outside of subclass instances (see `Parser::create_entry`)
* `EntryContainer#[]`: add ability to search by text as well as text + trailing tags
* Add `Task|Note|Project::Identifier` inner classes to hold parsing logic specific to each
* `Parser`:
    - Extract `::identify_type` out of `::create_entry` and have it delegate to
      `<Type>::Identifier` classes
    - Add logic in `::create_entry` to handle trailing tags
    - Add `::split_text_and_trailing_tags`
* Add `spec/support/helpers.rb` to hold methods used in multiple specs
* Refactor all specs that instantiate entries to go through `EntryHelpers#new_entry` which
  invokes `Parser::create_entry`.
Cleanup after refactoring in last commit:

* Collapse `EntryParser` back into `Parser` since it doesn't really carry its weight.
* Make `Parser` stateful again
    - add `#parse_doc` method to `EntryHelpers` to isolate changes.
    - rename `EntryHelpers` to `ParsingHelpers`
* Fix rubocop warnings.
Squash Task, Project and Note classes.

* Entry superclass was carrying all the weight and the subclasses were mostly duplicative.
* Configure some reek and rubocop warnings to be ignored; adjust flay threshold
* Add Entry#matches which EntryContainer#[] just delegates to.