This resolves #95 : Only symlink files that are tracked by git

Besides adding a test for this feature, I also had to update some
existing tests slightly.

First I had to make sure that tests that modify their test repo, also
commit to that test repo. Otherwise the linking function wouldn't do
anything since git ignores files not added to the repo.

Secondly, I had to modify the 'fail when linking file with newline' test
to look for symlinks with double quotes since that is how they are
returned by `git ls-files` which brings up the point that we could now
support filenames with newlines in them. `git ls-files` wraps such
filenames in quotes like:

"subdir/filename_with\nnewline"

That being said I'm not sure of the usefulness of newlines in filenames.
Merge pull request #100 from squaresurf/issue-95

This resolves #95 : Only symlink files that are tracked by git
Fixes #97, refactor utils/
Only source file that implements invoked command