Nested structures implementaion: Hamster.from and Hash#put_in

This is an attempt to tackle the nested structures feature (#140). It implements:

* `Hamster.from` to allow generating deeply-nested Hamster structures from Ruby objects (consider a JSON-like structure of nested Ruby Hashes and Arrays).
* `Hamster::Hash#put_in` to allow modifying a value in a deeply nested Hamster::Hash structure, creating new parents as-needed along the way. Note that this currently ignores the possibility of a `Hamseter::Vector` somewhere along the path. Need to think if we want to solve this or leave it as-is.

Comments are of course welcome.
That looks good. Another alternative would be to do something like `Hamster::Hash.alloc(Trie[obj])`.

As for using `#bulk_put` to initialize a `Hash`, right now `Hash.new` uses `Trie[]`. `Trie[]` does repeated `#put!` to initialize a new `Trie`. If `#bulk_put` is faster than a repeated `#put!`, we can use it in `Trie[]` instead, but I suspect it will be slower.