gras: formalize the weak container api w/ docs

address issue #69, we now have a set_container call,
which is now formally part of the api.

Anyone can call set_container for custom container types.
GRAS supports shared ptr and pyobject out of the box.