Add basic functional tests

This pull request implements a functional test client and ports the Python smoke tests to Go. It's not currently integrated with the server, so Simple Push must be started manually before running the tests. Ideally, we'd have a mechanism for creating a `simplepush.Application` instance programmatically; this should be easier once #30 is done.

The tests can be run via `GOPATH="$(pwd)/Godeps/_workspace:$(pwd):$GOPATH" go test -v github.com/mozilla-services/pushgo/client`.

Closes #32. @bbangert, @jrconlin r?
My understanding of how this all works is very superficial, so I'm not at all sure this is actually a problem, but I can't help but notice that since the select statement blocks, it's possible that the pending lock could be held by this code for an extended period of time. If that's already understood and is desired behavior, great; if not, might want to free the lock before the select and then claim it again inside the `messages <- update` case.