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.

We swithered about this. The test passes a nil parameter to Do if the expected result is nil, but perhaps it should be another field in the test instead.