Add transport abstraction to geard

Remove coupling between cmd/gear and http/ packages - allow other types of transport besides http to be possible.  To do so, implement the `transport.Transport` interface and register it with `transport.RegisterTransport(name, interface)`