pprust: Add parentheses to some Expr

Some `Expr` needs parentheses when printed. For example, without
parentheses, `ExprUnary(UnNeg, ExprBinary(BiAdd, ..))` becomes
`-lhs + rhs` which is wrong.

Those cases don't appear in usual code, but they can appear in manually
crafted ast by extensions.

Note that this patch is incomplete in that it doesn't add any
parentheses to `ExprBinary` since they have complicated story.
(Adding parentheses would cause `1 + 2 + 3` into `1 + (2 + 3)` which
doesn't look so good...)
pprust: Fix asm output
pprust: Print `&&e` instead of `& &e`
pprust: Remove unnecessary && of `print_tt`
libsyntax: Workaround pprust `for` issue
test: Add missing `#![feature(managed_boxes)]`

They use managed boxes, but are not perfectly checked by feature gate
since they are inside macroes.
compiletest: Modernize typenames
compiletest: Test `--pretty expanded`

After testing `--pretty normal`, it tries to run `--pretty expanded` and
typecheck output.
Here we don't check convergence since it really diverges: for every
iteration, some extra lines (e.g.`extern crate std`) are inserted.

Some tests are `ignore-pretty`-ed since they cause various issues
with `--pretty expanded`.