Removed a few macro-expanding-to-module workarounds

Also documented a few issues
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
Removed useless cmp::{min, max} reexports from the integer modules
Removed module macro workaround for signed and unsigned integers
auto merge of #10719 : Kimundi/rust/switch_to_multi_item_macros, r=alexcrichton

- Removed module reexport workaround for the integer module macros
- Removed legacy reexports of `cmp::{min, max}` in the integer module macros
- Combined a few macros in `vec` into one
- Documented a few issues
extra: missed a couple `@` in json
Wrap the return value of the type_id intrinsic in an opaque box

Closes #10594
Don't run cleanups twice in "if true" blocks

Turns out `with_scope` already translates destructors, so by manually
translating destructors we end up running them all twice (bad).

Closes #10734
auto merge of #10722 : cmr/rust/type_id_opaque, r=alexcrichton

Closes #10594
auto merge of #10735 : alexcrichton/rust/issue-10734, r=cmr

Turns out `with_scope` already translates destructors, so by manually
translating destructors we end up running them all twice (bad).

Closes #10734
std::io::mem: add a with_capacity constructor to MemWriter.

This allows one to reduce the number of reallocs of the internal buffer
if one has an approximate idea of the size of the final output.
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`.
auto merge of #10737 : huonw/rust/with-cap, r=alexcrichton

This allows one to reduce the number of reallocs of the internal buffer
if one has an approximate idea of the size of the final output.
Make reachable reusable in dead-code pass
Add dead-code warning pass
Remove dead codes