Extend ChangeScreen2 horizontal bars to full width.

This allows the title of the change message to have some padding within
the bar. Also, removed the implicit 1px padding from the th element in
the infoTable, so it lines up correctly with the 'Files' text.

Change-Id: Id16963bd5828f6a28869657a1d76285b54f8c778
SideBySide2: Fix tab alignment to be correct width

CSS :before selector inserting a string shifts the rest of the
element text right by the width of the string, as the string is
part of the page layout. Use "position: absolute" to take this
inserted character out of the layout, drawing it on top of the
space/tab instead of before it.

This fixes the tab width to be the user's preference, rather than
1 + user's preference when show tabs is enabled.

Change-Id: I1a9ffdcf0eafac7037dfb52b3e792e5ca9fd5e56
SideBySide2: Fill the browser width

Filling the browser available space with the CM3 instances each at
50% size allows the user to more easily view long lines if they
have a wide display, and better fit on more narrow displays by
splitting the available width at 50%.

Change-Id: Iddeb0b6b43406ddb9f72d8dd369cedab2907e297
Fix ArrayIndexOutOfBoundsException on intraline diff again

When using intraline diffs with show line endings, a user could
encounter an ArrayIndexOutOfBoundsException when going from a file
with just newlines to carriage returns and newlines.  This only
impacts the legacy change screen, however.  Since the newline
may be in a span element itself, it looks like we have some more
things to check.

Change-Id: I65443f487be60a949346398a487de38eb88e75dd
Buck: Decouple plugin-api installation from deployment

Currently the same pom_fake.xml controls both installing the plugin-api
in local Maven repository (typical use case for a contributor) and
deploying it on Google bucket (typical use case for a maintainer). To fit
the both use cases that file contains stuff needed for uploading to Google
bucket only: 'gs-maven-wagon' artifact and the repository to fetch it from.

Because the "best" build tool in the world randomly and unreproducible
fails to fetch that artifact [1], frustrating the potential contributors,
for reasons that nobody knows and understands, separate these use cases
from each other, and strip the stuff from pom_fake.xml needed for deployment
of plugin-api. The cost is code duplication. The advantage of doing it:

  buck build api_install

just works. Always.

[1] https://gist.github.com/mulby/092fee5f5962aafbbb25#file-gerrit-build-error-txt

Change-Id: I842335907ef8721f4126bcd90e395f7748aefc74
Update change to invalidate cache after deletion of draft revision

When draft revision is deleted the change is updated only when the
current draft patch set was deleted. That's because new current patch
set field must be updated in the database.  However when non current draft
patch set was deleted no update of the change happen.  That breaks
CS2 as it relies on browser side cached ETag and computation of ETag on
the server side. Because nothing is changed, the ETags are the same and
HTTP status 304 is returned.

Update the change also if non current draft patch set was deleted.

The only alternative to this approach is to decouple draft revision
retrieval from /changes/<id>/detail endpoint.

Bug: issue 2405
Change-Id: I80f2331362ba61306c9436921ebf153b23c3c4bc
(cherry picked from commit a50fa6761f306aa774e34dd5dc356180743dcbbd)
Documentation: Improve the description of the change screen preference

Update the documentation to make it clearer that the user can switch
between the old and new change screens.  Use the same terms that are
used on the preference screen.

Bug: Issue 2459
Change-Id: I97b23994f2756eb4ba540104dc5ca4c08007c7e6
Merge changes Iddeb0b6b,I1a9ffdcf,Id16963bd into stable-2.8

* changes:
  SideBySide2: Fill the browser width
  SideBySide2: Fix tab alignment to be correct width
  Extend ChangeScreen2 horizontal bars to full width.
Update 2.8.2 release notes with recently merged changes

Change-Id: I3ab898626bea028db085d49f6f9aa187f36bef4d
Make sure change-merged event contains correct patch set number

When a change is submitted with the cherry-pick strategy, or when the
change is rebased with the "rebase if necessary" strategy, a new patch
set is created.  The newly created patch set was not being set in the
change-merged event.

Bug: Issue 2331
Change-Id: Ie98f0781742232726f3425529ee6b34fd0496bb9
Merge "Documentation: Improve the description of the change screen preference" into stable-2.8
Merge "Make sure change-merged event contains correct patch set number" into stable-2.8
Merge "Fix ArrayIndexOutOfBoundsException on intraline diff again" into stable-2.8