structs should deserialize from a map
Handle trailing characters
Clean up checking for trailing characters
Implement deserializing json options
Actually fully test deserializing structs
add a JsonDeserializer, clean up tests