ChangeScreen2: Always show 'No Score' as label help for zero votings

Initially when the reply box is opened and the currently selected
score for a label is '0' then it shows 'No Score' in the label help
column. When hovering over another score it shows the help for that
label, but on mouse out the label help is reset to show the help of
the selected score. This works for all scores, but not for the zero
score. If '0' is selected, on mouse out the label help column is
cleared. The label help column is also cleared if '0' is selected by
the user.

This behaviour is inconsistent as sometimes 'No Score' is shown for
zero scores and sometimes not.

Change-Id: I93a088f9fef0071e63a43554ea2ef709c1463f0d
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
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
Refactor ChangeUpdate: Make superclass AbstractChangeUpdate

Similar to the change that refactors ChangeNotes out, I created a
superclass, AbstractChangeUpdate, for use by both ChangeUpdate and the
new Update class I will be writing for the purpose of draft
comments. I extracted all common variables and methods that I thought
generically should be part of an "update" of this kind.

However, I left some out (see commit()) because they depended on
functions that I thought aren't generic enough to be part of a generic
update (see storeCommentsInNotes()).

Finally, there was one method in ChangeUpdate that I refactored out to
CommentsInNotesUtil because I knew that it will be needed there. I
changed that method a bit because the old implementation depended on
the fact that we were going to just be adding comments to the list of
preexisting comments. However, with drafts, we will be adding and
deleting, so I changed that method to force the caller to have already
made all modifications to the list, so that the method just writes the
list it is given to a note and writes that note to the NoteMap.

Change-Id: I0229e895e34c4ddd728b461ac64e3b3be936032d
ServerPluginProvider: Fix javadoc warnings

Change-Id: I0038bf3ec1b1a4ee8347b3094c90ea30caca39d3
Merge "ServerPluginProvider: Fix javadoc warnings"
Merge "ChangeScreen2: Always show 'No Score' as label help for zero votings"