cleanup archive when Get returns error

Charm files downloaded with Get are parsed with readArchive. If
readArchive returns an error the downloaded file should be unlinked to
prevent filling the filesystem on which CacheDir resides.
I'm not entirely convinced this is a good change - even if the content is bad, it's
still a valid thing to cache.

Assuming we *do* think it's a good thing to do, then, I'd suggest
a slightly simpler change:

     ch, err := ReadCharmArchive(path)
     if err != nil {
          // Remove cached invalid charm archive, whether we just created it or not.
          os.Remove(path)
          return nil, err
     }
     return ch, nil