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.

This is really pedantic, but your slice could cut a rune in half causing up to one rune's worth of corrupt output.