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
Also show symlinks to castles

Fix bug where a symlink to a valid castle would be ignored.
Add unit tests for refresh command
Include pull command source in refresh command
Merge pull request #102 from untitaker/symlinks_to_directories

Also show symlinks to castles
Merge branch 'master' into development

Conflicts:
	utils/git.sh
The DAYS argument for refresh is required when specifying castles
Explain git magic in check()
Fix #104: `homeshick pull` crashes on `uncheckable` castles.
Fix #83 by warning user when github shorthand exists as path
Fix #98. Relative symlinks can now be tracked properly
Merge branch 'development' into testing
Merge branch 'testing' into master
Merge remote-tracking branch 'upstream/master'