Remove unnecessary shell redirection.

While it is aesthetically nicer to discard the unused output from `git
ls-files`, it isn't necessary.  Discarding requires a shell redirection
which exposes us to vim's shell quirks; it's not worth it.
Use POSIX and Windows compatible command.
Always use path relative to repo root with git-show.

More recent versions of git support paths relative to current directory.
But for maximum compatibility we need to use paths relative to the
file's repo's root.
Escape the blob filename.
Fix typo in utility#escape().
Refactor: inline method.
Remove unnecessary escaping.

While I can't say I fully understand escaping rules for Windows, I
understand them better now than I did when I copied that code from
another plugin and hoped for the best.

As far as I can tell, this escaping code was written to be used when
manually constructing a system command to execute – which isn't how this
plugin is written.  So this code shouldn't be here.
Custom shellescape(arg) to cope better with Windows.

Hopefully :)
Fix bug where updated sign kept old name.
Add debug command.
Remove orphaned signs.
Document variable types.
Merge branch 'signs-139'

* signs-139:
  Document variable types.
  Remove orphaned signs.
Disable realtime updates when Vim older than 7.3.105.
Add parens around diff command

This corrects issues on my system where non-tracked files cause a fatal
error on load.

Update #137 on Github