Remove @ from json::Error
Remove some unnecessary impls from json
extra: Rename json constructors into *::init
extra: json::Encoder should take a &mut io::Writer
extra: missed a couple `@` in json
auto merge of #10727 : erickt/rust/json, r=huonw

This PR does some small modernizations to the json library. First is to remove the `@` boxes, second is to rename the constructors to `new`.