Escape the path name when using Git.

I guess I should add a test in ocaml-git to check that the name are correct.

This fixes one failing test-case (GIT 4)
Try to keep the blobs, trees and commits store in different location

This enables having object of different types having the same SHA1.

This help with the Git backend where leaf nodes are also blobs.
Imrpove the output of the graph when objects of different kinds can have the same SHA1.
Remove a debug statement
Fix all the quick tests
Hex encode all the string components of JSON blobs
All the tests pass again

This fix the error highlighted by #20
Fix some debugging output
Fix out-of-bound substrings operations
Fix the race conditions in the CRUD test, remove the ugly Lwt_unix.sleep
Merge pull request #21 from samoht/fixes

Fixes