Define a Neighbours type for []Neighbour
Add a caching implementation

Obeys HTTP caching headers, serializes to GOB; isn't yet used by the
rest of the library code though.
Use the cache in the library code

Includes extra API for getting information about the cache. The cache
can also be Loaded from an io.Reader or Stored in an io.Writer.

The cache needs to be Clean()ed once in a while to prevent too many
stale entries from accumulating.

Breaks public API as the LastFM methods had to be changed to use a
pointer instead of copy. Using copies breaks caching.

The internal doQuery function now also needs to return the HTTP headers,
which are needed for determining the caching.