Document support

This change adds an API for storing and fetching plain JSON documents (either struct or `map[string]interface{}` objects), fully abstracting away the details of how DynamoDB represents attribute values.

As of now it only implements the PUT, GET, and DELETE operations, and has undergone only limited testing aside from unit tests. Using typed structs also incurs an extra JSON encode/decode, so performance optimizations may be necessary.

I wouldn't consider this ready to merge, but I'm proposing it now to get some feedback. Is there interest in such a feature?