Lazy loading available

The ODM supports a lazy loading feature allowing to delay the fetching of
nested documents only when the user requires it.

This features plays nicely with the cache, and is almost transparent for the
user.

It can be enabled or disabled from the `Database` object.

Signed-off-by: Martin Richard <martius@martiusweb.net>