Validate empty repo

This addresses #23 by:

* Adding validation to the `Project` model.
* Fixing a bug in `ProjectsController` that only shows up when validation fails :wink:
* Reporting the output of `git fetch` or `git clone` when either fail, and failing the build then too.

I also prevented `git` from holding up Sidekiq by asking for a password on stdin while I was at it, since I did some testing against private repos on GitHub.