Move initial commit to setUp() method (fixes most tests)

I could swear these ran perfectly on my home machine, despite relying on
a side-effect from the first test, but in the VM I just spun up on my
Windows box, each test needed the setup - as they always should have.

Weird.
Style-check only added, copied, and modified files

Such files are introducing new code to the repo, and should therefore be
checked for style.

Other actions, such as deletion or permissions changes, do not actually
add new code to the repo, and therefore do not need to be style-checked.
Run style check on the file as staged

Previously, unstaged changes would be included in the style check.

That gave rise to several confusing and annoying errors.
Add support for filtering checked files by extension

It's currently required, but maybe I should make it optional.

It just seems unlikely that by default you'll want to scan every file in
a project.