Implements the logic behind the rake tasks for annotations like
rails notes rails notes:optimize
and friends. See
rails -T notes and
Annotation objects are triplets
:text that represent the line where the annotation lives, its
tag, and its text. Note the filename is not stored.
Annotations are looked for in comments and modulus whitespace they have to start with the tag optionally followed by a colon. Everything up to the end of the line (or closing ERB comment tag) is considered to be their text.