add hash and array constructors

This way we can filter documents to build other documents.

When pipes come in, this will become a lot more useful.

Fixes #13