syntax: Add new values that can be used with the quasiquoter
syntax: pass some values around by reference
std: clean json test imports
std: serializing Options should use the right case
std: change fail_unless to assert_eq in json.rs
std: fix json PrettyEncoder and add tests
std: Add tests for json decoding options
std: change default json enum encoder to use strings or a flat vec
std: add option type directly to serialize::{En,De}code
std: Decode::read_enum_variant should pass in the variant names

Because the json::Decoder uses the string variant name, we need a
way to correlate the string to the enum index. This passes in a
static &[&str] to read_enum_variant, which allows the json::Decoder
to know which branch it's trying to process.
std: add tests for decoding json enums
syntax: Fix parsing global generics (Closes #5572)
syntax: Remove dead code from the parser
syntax: fix pretty printing __log stmts
syntax: Remove deprecated expr_vstore_fixed
std: add some better failure msgs to json
auto merge of #5578 : erickt/rust/incoming, r=jbclements,erickt

Hey folks,

This patch series does some work on the json decoder, specifically with auto decoding of enums. Previously, we would take this code:

```
enum A {
    B,
    C(~str, uint)
}
```

and would encode a value of this enum to either `["B", []]` or `["C", ["D", 123]]`. I've changed this to `"B"` or `["C", "D", 123]`. This matches the style of the O'Caml json library [json-wheel](http://mjambon.com/json-wheel.html). I've added tests to make sure all this work.

In order to make this change, I added passing a `&[&str]` vec to `Decode::emit_enum_variant` so the json decoder can convert the name of a variant into it's position. I also changed the impl of `Encodable` for `Option<T>` to have the right upper casing.

I also did some work on the parser, which allows for `fn foo<T: ::cmp::Eq>() { ... }` statements (#5572), fixed the pretty printer properly expanding `debug!("...")` expressions, and removed `ast::expr_vstore_fixed`, which doesn't appear to be used anymore.