Fix tests so that they can be run offline.

This branch refactors the tests so that they can be run completely offline.  This is mostly to speed up the tests and to avoid having to query an external server every time the tests are run.  This branch also changes the tests so that they will only output something if there is an error, making it more convenient to spot errors when running the tests.
The changes to easy.go are drive-by fixes of the panic messages.