Fixed Sublime's undo when GitGutter is active

Seams like the problem was in `run_command` which creates new edit,
thus making every char input separate. In that case every Undo
reverted symbol-by-symbol changes.

This commit separates GitGutter logic from Sublime's TextCommand, so
it can be directly invoked on view

Related issue: #16
Postpone plugin invokation in on_modified event

If plugin in on_modified event takes more than 0.02 sec user gets a
warning. This commit makes plugin actually do its job in next event
loop cycle.
Better undo fix

The original undo fix was to make the command not a view command (because that effected the undo) but that made it too slow and needed to be called in a timeout delay which cause a flicker that bugged me. This uses a window command which doesn't need the delay that causes a flicker and doesn't break undo
fixes #26
Added some installation instructions for Windows users.
Fixed a markdown error
Add the line break back that was removed in #29
Update git_gutter_handler.py

Save buffer to file with right encoding as it would be save by ST2
Remove a break that shouldn't be there, fixes #35
Don't run when there is no active view for window

Sometimes GitGutter tries to run when there is no active window
and it throws an error because self.view is None.
I have only been able to reproduce this in the following scenario:
you clicked on FileA in the sidebar (FileA is not previously open)
not to open it but to preview it. While previewing it you press
ctrl+` to open a console. With the console selected and the
unopened FileA preview showing in the window you click on another
unopened file, FileB to preview that file. There will be no active
window at this time and GitGutter will throw an error. So we can
just skip running this time because immediately after selecting
FileB, focus will shift from the console to its preview. This will
cause GitGutter to run again on the FileB preview.
Wow that was a really long explanation.