[WIP] JSON Deserializer

Targets #151

This is highly WIP. Please review the interface definitions before I
start implementing this stuff!
The number of cases in a `switch` case are directly related to the number of array types there are. If they are not equal fro `begin_array` and `end_array`, wou certainly fucked things up.