gitsync.Repo includes all repo related operations

We tend to operate on Repo objects and binding methods to them makes sense. This
also begins hiding implementation details behind the Repo interface to allow
future operations on heterogenous Repo types (cli polled, remote etc.).
Removed unused web template function
Refactored web setup to have separate control and web components

The daemon should be controllable via a consistent API and factoring that into
components is important. We separate the static file serving (ie the web
porcelain) from the event distribution.
We also use the same mechanism to pubsub messages in both the core daemon and
the web server. The latter uses a second stage pubsub set, a ChangeBus, to
represent all websocket clients that are connected for events.