magit-log-time-unit-as-character: default to nil

That was the intention when I added this option a few commits ago.
magit-format-log-margin: bugfix
magit-format-duration: make WIDTH argument mandatory
magit-duration-spec: move definition

Move the definition of option `magit-duration-spec' next to the `log'
options.  The duration formatting could theoretically used elsewhere,
but currently it is only used in logs.
fix and improve new log margin

Merge the options `magit-log-time-unit-as-character'
and `magit-log-margin-width' into just one new option
`magit-log-margin-spec', which additionally allows using a duration
spec different from `magit-duraction-spec' (which could come in handy
if people contribute specs for languages other than English).

Only calculate the width of time units once by doing it in
`magit-refresh-log-buffer'.  As a result the new buffer local variable
`magit-log-margin-timeunit-width' is needed.  `magit-set-buffer-margin'
is also now called from `magit-refresh-log-buffer'.

When truncating author names handle wide characters correctly.  Thanks
to Teruki Shigitani for these fixes.
magit-log-toggle-margin: new command
magit-commit-internal: populate COMMIT_EDITMSG for fallback

Close #1036.
magit-dired-jump: fallback to default-directory

Close #1081.
magit-log-toggle-margin: more speedy toggle magit-log-margin

remove `if' nesting
if `magit-log-show-margin' is non-nil, do margin open/close only
if `magit-log-show-margin' is nil, turn on and refresh
Merge branch 'pr/speedy-log-margin-toggle'
magit-log-{oneline,long}-re: fix matching graph

There can be consecutive spaces within the graph, not only at its end.

Close #1077.
magit-with-emacsclient: start the server if necessary on Windows

Start the server if it is not running yet on Windows too.  Previously
this was not done on Windows, and there is no reason that would justify
that exception.
magit-with-emacsclient: delete leftover server

It is possible that a server file is not properly deleted after the
Emacs instance in which the server was running has terminated.  That
could happen if Emacs has crashes; there might be other reasons.

If the `server-name' is "server", then this isn't a big problem as we
then just append the pid of the process to the `server-name' and use
that instead.  If the server named "server" does indeed no longer exist,
that is not so nice, because we needlessly use a non-standard name.  But
we cannot do anything about it without jeopardizing performance (by
attempting to connect to the server, just to see whether that works).

If we cannot use "server" then we append the pid.  In the unlikely case
that the server file for "serverPID" already exists, we now
unconditionally force delete that server.  That server cannot possibly
be still in use because PID is unique and we already know it is not
running in the current instance.
magit-with-emacsclient: remove a needless check

In one particular case do not check whether the `system-type' is
`windows-nt' because the value of `server-use-tcp' is what is relevant
and that we also check in the same place.
magit-with-emacsclient: cosmetics
magit-with-emacsclient: correct bogus server-use-tcp

On startup `server-use-tcp' is set to t if local sockets cannot be used.
That doesn't protect users from later setting it to nil, so we now undo
that mistake if necessary.
magit-show: correctly deal with special symbol revs

Like other commands and internal functions `magit-show' still has
to deal with "special revs" represented by the symbols `index` and
`working`.  While I intend to remove that special case, we are not
there yet.  Before this commit `magit-show' did not properly deal
with these revs, which seemed like a small problem because there
are better ways of getting the same information in these cases.
But that of course does not mean it is impossible to use this
command under such conditions; so make the necessary adjustments.

Close #1083.
magit-show: fix previous commit

Always return the buffer that visits the file.
magit-show: cosmetics
magit-refresh-commit-buffer: don't use --no-abbrev-commit

Don't use `--no-abbrev-commit' when calling `git log -1' in
`magit-refresh-commit-buffer'; it isn't supported by Git version
1.7.2.5, which we still want to support.  Also this option didn't
have quite the intended effect anyway: the parent hashes were still
abbreviated.  At some point we will have to deal with this again:
an uniquely abbreviated hash to stay unique.  But there are so many
other places that don't care about this, that it doesn't really make
a difference to have one more, for now that is