Wrap text in editor before the buttons.

* Adds 52 px margin-right
* Fixes #3223
Fix a page cache bug that can lead to lost updates

The problem was in the MuninnPageCache#evictPages method, in that we released
the write lock on the newly evicted page before we attempted to grab the write
lock on the translation table, for removing the evicted page. This left open a
window where another thread can do a look-up in the translation table, observe
the page that we have just evicted, complete a page fault, and then the
eviction thread would get the lock on the translation table and remove the page
that was just faulted in. This is the bug.
Later, another thread would find that the translation table does not have an
entry for the page it wants, so it faults it in. Now we have two cache pages
that are bound to the same file pages. If both are written two, then one will
overwrite the other when they are evicted. This is the symptom we observed in
our tests.
Increase the potential parallelism of page faulting

... by releasing the write lock on the translation table sooner. This way,
other page faults to the same stripe can proceed, while page faults and lookups
for the specific page will wait like they've always done. Except now they're
waiting on the lock on the page itself, instead of waiting on the lock for the
translation table. We ensure this by grabbing the write lock on the page we are
faulting into, before we add it to the translation table and release the lock
on the translation table.
Add additional tests for X-Forwarded-Host

Against Cypher REST response, and slash redirects
Changed the code so that the transactional endpoint creates URIs based on the request URI (rather than the server's URI). This is better (the server doesn't usually know it's own URI, whereas clients do) and enables X-Forward headers to work, fixing the problem identified in https://gist.github.com/albertoperdomo/6f3d7ffcb1351e5c61ce

However, /db/data and /db/manage (note: no trailing slashes) are not fixed here. That is a different bit of code to tame.
Removed the integration tests pertaining to the correct use of X-Forward-* when redirecting from URIs that don't end in slash to ones that do*.

This is because there is some subtle interaction between Jetty and Jersey that screws this up. We've been through the Jetty code trying to see where this happens, but it's high cost for low value. Therefore when you don't correctly specify (say) /db/mabage/ and instead specify /db/manage then you will likely get incorrect URIs in the 302 response. the solution is not to use the wrong URI.

* This is a dumb decision by Jetty/Jersey. It is clear that http://example.com/foo/ and http://example.com/foo are not the same URI. Meh.
Merge pull request #3277 from jimwebber/master

[2.2] X-Forward Support for Transactional Endpoint
Manage position ourselves in PhysicalLogVersionStoreChannel

since it's expensive enough, especially on Windows, to show up in
profiling.
Merge pull request #3271 from chrisvest/2.2-pagecache-stress

[2.2] Fix a page cache bug that can lead to lost updates
Merge pull request #3280 from tinwelint/2.2-vlog-manual-position

[2.2] Manage position ourselves in PhysicalLogVersionStoreChannel
Merge pull request #3241 from oskarhane/fix_hidden_editor_text

[2.2] Browser: Wrap text in editor before the buttons.
Batch writer thread empties buffer into channel

instead of each append call, which allows for less calls to
FileChannel#write and less I/O wait for append threads.