Implement metadata support and type deserialization.

Based on [that same thread](https://github.com/dataprotocols/dataprotocols/issues/76). I was not sure what the possible types are, so I used the ones that were mentioned in the examples on the thread above.