csclient: new package

This is the start of the client-side charm store code.

We also factor out the JSON equality checking so that the csclient tests
can use it.

The difference is that "csclient" is a top-level identifier, whereas the Client type is always qualified with the package name when qualified. Thus we have csclient.Client, not client.Client. Examples from the standard library include io/ioutil (not io/util) and http/httptest (not http/test).