Let WebLink alter image and name depending on what it links from.

By returning a WebLinkInfo from WebLinks instead of the four separate
values, plugins implementing the extension points:
PatchSetWeblink, FileWeblink, BranchWeblink and/or ProjectWeblink
can alter imageUrl, linkName and target depending on what it links
from.

Change-Id: I23716673713db3955d9f1743dee95a87a9db2978
Include all command arguments in SSH log entry

Previously the SSH log only included the first argument. This
prevented the repository name from being logged when
'git receive-pack' was executed instead of 'git-receive-pack'.

Now the SSH log includes all command arguments in the log ensuring
that the repository name is always logged. This is desirable behavior
for anyone looking to monitor repository access via the SSH log.

Change-Id: Idff950e5480a122a2cb366a443d25aa9e0a8f5c8
Merge "Include all command arguments in SSH log entry"
Add copious debug logging to MergeOp

Sometimes merge attempts fail with no user-visible message. Sometimes
there is an error in the logs, but sometimes it is never logged, or
the error does not provide enough context. Add lots of debug logging
to help administrators and Gerrit developers track down bugs.

It is possible that eventually some of these informational conditions
will make it into end-user-visible messages, but for now just log
until we get a better sense of what are common failures and how we
might communicate them.

Include in each log message an identifier for the current operation,
which includes a project, branch, and timestamp. This is because
multiple merge runs can run simultaneously in the work queue, and the
logger instance is (and probably should remain) static.

Limit somewhat the available method signatures in the newly added
helper methods, to avoid the terrible ambiguity between
Logger#error(String, Throwable) and Logger#error(String, Object...).

Change-Id: I872451a901500376160323152a81cfced04505d4
MergeOp: Remove unnecessary "final"s

Change-Id: Ib0139c60616c60eaf9fa1641d0a803d6f45b9342
MergeOp: Reorganize constructor and members

One injected argument for line and order by piping through `sort`;
there are just too many to think any harder about it. Other members
may have some sort of logical order to them so leave them as is for
the most part. Be consistent in assigning "this.foo = foo", which I
have been using more frequently recently. Move the @Assisted argument
last so it's obvious.

Change-Id: Idba2ebd0950c3b5cbe7ec1d08e16199dc095c097
MergeOp: Don't get all refs when just refs/heads/* will do

Change-Id: Icb4121f5f2f3cec2a4bfa92730672aa8b5a49b31
MergeOp: Fix long lines

Change-Id: If65224bab2b0ff274194068840025a118322c7cf