- JSON<->Obj interface is now ADL functions, so they play nicely with enums
- recursive vector/map parsing and ObjectMapper moved to JSONExpr and tested
- renamed (un)parse to to/fromJSON, since text -> JSON is called parse
- Protocol.cpp gets a bit shorter
Sorry for the giant patch, it's prety mechanical though
The name deserialize may be a bit too general and prone to clashes with other code. Maybe choosing something a bit more specific like json_deserialize is a better option.
On the other hand, we do the SFINAE trick to check the types are correct in Expr constructor, so we should be fine either way.