Make constructor functions into static methods

`json::from_reader` -> `json::Json::from_reader`
`json::from_str` -> `json::Json::from_str`

I personally don't see a reason why the struct constructors should be
disjoint from the struct itself.

[breaking-change]