Fix bug where vim-gitgutter tried to run for non-files.
Fix bug when calling GitGutterDisable immediately.

When opening Vim without editing any file, calling GitGutterDisable
would fail because `s:file` was undefined at that point.  The fix breaks
what encapsulation there is, but has the virtue of working.
Fix bug for GitGutterEnable.
Add opt-out configuration for BufEnter and FocusGained.
Add FAQ about lag.
Specify viml for relevant code blocks.
Fix typos.
Fix autocommands so GitGutter doesn't run twice on file read.
Fix bug where GitGutter wasn't called on buffer write.

This affected people with the default configuration but not those where
`BufEnter` was turned off.

This problem was introduced by the last commit.
Speed up work done on `FocusGained`.

When vim-gitgutter is configured to update on `BufEnter`, which is the
default, we only need to update visible buffers on `FocusGained`.
Other buffers will be updated as and when the user enters them.
Customisable signs' symbols.
DRY configuration.
Remove unnecessary string concatenation.
Allow configuration of extra arguments for git-diff.
Better filename resolution.
Make signs optional (on by default).
Whitespace.
Check for grep

Fixes #72
Update only visible buffers on `FocusGained` and `TabEnter`.
Make grep optional instead of required.

When grep is available we use it for efficiency.  When it's unavailable,
we filter in Vimscript.