Add an ObjectStore

It will be used to store the objects in the `.scv` directory.

The directory structure is as follows:

  .scv/
    objects/
      59/
        59873e99cef61a60b3826e1cbb9d4b089ae78c2b.json
        ...
      ...
    refs/
      HEAD.json
      master.json
      ...
    blobs/
      59/
        59873e99cef61a60b3826e1cbb9d4b089ae78c2b
        ...
      ...

Each object in `.scv/objects/` is stored in a directory with a name
of the first two symbols of the object id.

The file extension determines the object format. Possible formats
are `json` and `json.gz` (`json.gz` will be supported in the future).

For each blob object in `.scv/objects/` there may be a file in
`.scv/blobs/`. These blobs follow the same naming scheme as the
objects, but they are just binary files (not in `json` format).

The refs are named objects (object.named? == true) and can be
enumerated.