Ease development, change db.Scope() semantic

Housekeeping:
* Introduce a `Dockerfile` to ease development (cherry-picked from @erikh immutable-trees branch)
* Update `Dockerfile` to use @tiborvass fork of libgit2
* ~~Update `Makefile` to avoid unnecessary dev image rebuild for an unchanged `Dockerfile`~~

Code changes:
* Change `db.Scope()` semantic: it nows allows chaining such as `db.Scope("a").Scope("b").Set("foo", "bar")`