Refactor ChangeNotes: Make superclass AbstractChangeNotes

There will be many similarities with how we will be reading into the
ChangeNotes from the traditional notedb ref for a change and how we
will be reading draft comments from the users ref in the all users
repository. Therefore, I made a super class for ChangeNotes,
AbstractChangeNotes, that extends VersionedMetaData so that I can
utilize those same methods and instance variables in the
DraftCommentsNotes (or whatever it's called). Additionally, there was
a method for reading comments from the tree of a commit inside the
ChangeNotes.Parser, so I extracted that into the CommentsInNotesUtil
so that I can reuse that method in the parser of DraftCommentsNotes
(or whatever it's called).

I had the option to either make the AbstractChangeNotes class a raw
type with the actual inheritor extending Notes and specifying its own
type or modify all callers to add an explicit cast to ChangeNotes
whenever they use load(). I think that the former is the cleaner
alternative, so that's what I did.

Finally, the parseComments() method wasn't using the argument it was
being passed so I got rid of that as well.

Change-Id: I88513bdeb7d0ca8e4aba52254f2c3ccc10bd2ce1
3 files changed