Pattern matching

Dereference match targets when possible. [FIXME: needs RFC]

Prefer

fn main() { match *foo { X(...) => ... Y(...) => ... } }
match *foo {
    X(...) => ...
    Y(...) => ...
}

over

fn main() { match foo { box X(...) => ... box Y(...) => ... } }
match foo {
    box X(...) => ...
    box Y(...) => ...
}