fix typos in sample code, add enum to json encoder, add test case
json bugfixes
tidy
json bugfix
json add enum encoder test case
re-special-case Option in JSON encoding
json tidy
added issue for reference in FIXME
added rather elaborate test framework
retabbing
core: add min and max to cmp, re-export various places.
core: add abs to num.
std: add stats.
rustc and std: teach about #[bench], modernize to use quote_expr! some.
auto merge of #4515 : graydon/rust/bench-harness, r=graydon

This is scaffolding for the new #[bench] attribute for marking unit tests as benchmarks. They are run with the --bench flag that the test runner now accepts. The runner automatically calibrates a test loop to an appropriate count to get a good per-iteration measurement.
auto merge of #4840 : jbclements/rust/add-json-enum-encoding, r=catamorphism

r?

I added code to the JSON encoder to support the serialization of enums.  Before this, the JSON serializer only handled Option, and encoded None as 'null'. Following this change, all enums are encoded as arrays containing the enum name followed by the encoded fields. This appears consistent with the unstated invariant that the resulting output can be mapped back to the input *if* there's a decoder around that knows the types that were in existence when the serialization occurred.

Also, added test cases.
libsyntax: Pretty print using the new impl syntax. r=brson