Add rudimentary docs to Twig::Repo class

More to follow for other classes.

Change-Id: Ib71c73bf0e185a5f2a9c439173e3a3fd7d2b82d3
Reviewed-on: https://gerrit.causes.com/24887
Reviewed-by: Greg Hurrell <greg@causes.com>
Tested-by: Greg Hurrell <greg@causes.com>
Silence Sinatra log noise related to Dir.chdir

While the code that we had was working fine for bin/twig-stats, it was
working noisily in the context of the bin/twig-app Sinatra app, spewing
the following to the console:

  conflicting chdir during another chdir block

So, this commit reworks the `Twig::Repo#git` method to work without
`Dir.chdir`. Effectively we can do this by prefacing the commands with
`GIT_DIR=...` in the environment.

The trick here is that figuring out what this is is different for bare
and non-bare repos. We encapsulate this in a new `#git_dir` method that
calculates and memoizes the appropriate GIT_DIR value, and returns
`nil` if we can't find such a directory.

The `#valid?` check is then changed to a simple call to `#git_dir`.

Change-Id: I1f4e6a6e39de6c989e239083174d844a4fba8bd5
Reviewed-on: https://gerrit.causes.com/24888
Reviewed-by: Greg Hurrell <greg@causes.com>
Tested-by: Greg Hurrell <greg@causes.com>
Add favicon files

For now, we're just using the Causes favicon. We've added a PNG with the
icon, and also an empty favicon.ico file, because browsers tend to
request that as a matter of course anyway, and having something to serve
them up keeps 404 noise out of the logs.

There is some un-DRY-ness in the templates, which we will fix shortly by
adding a layout.

Change-Id: Ib9e5837fff4f3d395058d45d6e49060ef76436ce
Reviewed-on: https://gerrit.causes.com/24889
Reviewed-by: Greg Hurrell <greg@causes.com>
Tested-by: Greg Hurrell <greg@causes.com>