Use empty struct for channel

Channels that are being used purely for signalling should use an
empty struct rather than boolean or int types.

Using an empty struct declares that we're not interested in the value
sent or received; only in its closed property.

See http://talks.golang.org/2012/10things.slide#11
Merge pull request #9 from alphagov/idiomatic-channels

Use empty struct for channel
Extract function, add timeout

If I don’t have my environment set up correctly, I’d like fast feedback
on that.
Merge pull request #10 from alphagov/faster-failures

Extract function, add timeout
Add support for zero-downtime restart
vendorise tablecloth
Make application exit when listeners return

Necessary so that the temporary child will exit when reloading.
Set tablecloth.WorkingDir from GOVUK_APP_ROOT

This will allow restarts to pick up the new version of the application
when symlinked directories are updated.  See
http://godoc.org/github.com/alext/tablecloth#pkg-variables for
more details