NPE when deleting draft patch set when previous draft already deleted

If a change has 3 patch sets, all of which are drafts, and draft
patch set 2 is deleted, attempting to delete draft patch set 3 (the
current patch set) will result in NPE.

The reason is that on deleting a draft patch set which is the current
patch set, the current patch set is set to the previous patch set
whose ID is calculated by subtracting 1 from the deleted patch set ID.

This does not work if the previous patch set has already been deleted.

Instead, set the current patch set to the highest patch set ID that
is available.

Bug: Issue 2128
Change-Id: I235d4d943a5525e8223218a97f4702e26f09a69e
Remove documentation links from admin page

The links for Change-Id and Signed-off-by documentation in the
admin page are hard-coded to specific versions on the the
gerrit-documentation.googlesource.com site.

This causes two problems.  Firstly, they are not links to local
versions, and secondly it is easy to forget to update them and
they become out of date.

Remove the links.  Administrators should be capable of finding
the relevant pages in the documentation by themselves.

Bug: Issue 2127
Change-Id: Idd4ddd1126e0631615d564173a02e3047aa87559
Merge "NPE when deleting draft patch set when previous draft already deleted" into stable-2.6
Fix installation of plugins

e51c428fe5ef3960f4990e1c0471d067783d4718 broke the unregistering of plugin
owned SSH command by passing wrong instance to the ConcurrentMap.remove()
function.

bae9e58ddd68992473307787fb01e022f5969fee was trying to fix it, but broke it
for the installation of plugins by throwing the `IllegalStateException` in case
the old registration handle wasn't found. But it's perfectly possible and even
wanted during plugin reloading: registration handle is replaced and the old one
cannot be found.

Moreover, bae9e58ddd68992473307787fb01e022f5969fee didn't fix all places:
the same bug in unregistering of SSH commands in
DispatchCommandProvider.replace() method wasn't fixed.

Change-Id: I21132d4f7aec58347acbf50d75a962cb8251201f
HACK: Improve diffs between patch sets in a change.

By filtering out changes that are purely due to differences between
the base commits. This has a big effect when patch sets were rebased.

This is a hack because it makes some constructors public that used to
be private and doesn't make the filtering optional somehow.
It should be safe, however, as it prefers to not drop an edit when in
doubt.
Fix EditList behavior for new case.
PatchScriptBuilder: Always include a and b lines if different.
SideBySideTable: Always use b lines, if data contains them.