Convert clear_git_time to clear_times
Make method static
Change how staged changes are calcualated

* Use the --staged flag of git diff to get staged changes
* Keep an adjustment map to adjust staged change line numbers

The diff returned by *git diff --staged* does NOT consider unstaged changes.
This means that we get the line numbers for where the staged changes would
be at if there were no unstaged changes. So when there are unstaged changes
the line numbers for where the staged changes are get shifted. As we process
the unstaged changes we keep track of an adjustment map (how many lines were
added/removed for each line - at what line number) and apply this to the staged
changes to put the line numbers in the correct place.
Adjust how to handle mixed (staged and unstaged) changes on same line