Expose the import/export function to the HTTP server

I guess we would need a proper HTTP client library to query the full server at some point.
Make the argument of export a list again
Fix the compilation of tests after the recent API changes
Add some code to easily read/write tree paths
Fix the name of the store dump in the JSON file
Improve the documentation of IrminBuffer
Fix instanciation of simple functors in the different backends.
Really check that the string has the right lenght when creating a SHA1 key
Expose IrminStore.{S_BINARY, S_MAKER, S}

Now IrminStore.S (irminsule store) has the same high-level API than IrminStore.X (core store), IrminStore.A (append-only store) and IrminStore.M (mutable store).
Expose a new functor in Irmin to easily create Proxy

A "proxy" is something which share the same interface as a complete irminsule store, but where all the core calls (included the root calls to the irminsule store) are actually resolved by an other irminsule instance. This is pretty useful when you want to implement an efficent remote interface as the high-level API functions will be resolved on the server instead letting the client do lot of calls itselfs.
[CRUD] call the server for the high-level calls instead of resolving everyting on the client

As stated in the previous commit, we can now use the 'fastpath' to execute high-level API calls directly on the server.
Make the tests compile again
Simplify the name of CRUD tests to make it easier to type on the command line
Add missing callbacks in the HTTP server
Fix stupid typo in reading JSONed dumped values.
Compress the JSON values
Clean-up the CRUD/HTTP interface

Now all the request are explicitely split into their path and body parts. The body is encoded using someting close to JSON-RPC (ie, using { "params": <json> }).

Now all the full tests pass again, this time using the proxy fastpath. \o/