Support receiving Github push events

Just to show what direction I'm heading in and to get some early feedback.

With this change, if `--listen=true`, first build Flynn using the master branch of all repos and get a path to the resulting docker fs, then listen for push events and when one is received, build Flynn again by just building the pushed repo, boot a cluster and run tests.

I'm currently putting the repos on the docker fs so they get cached along with the docker images.
I'd clean up `main` so that the three main blocks of functionality are in their own functions.