libcore: remove default to_str implementations for pointer types

These couldn't be overridden and so ended up being quite restrictive. This has
the side effect of changing the stringification of ~vecs, but nothing in
relied on this. Closes #4869.
Fix typo in grammar: underscore, not minus, can appear amongst hex digits.
Fix: now sha1 result_str() return correct value
libsyntax: Forbid `~mut` and `~const`. rs=demuting
libsyntax: Forbid mutable vectors. rs=demuting
librustc: Forbid `pub` or `priv` before trait implementations
auto merge of #5136 : pcwalton/rust/impl-publicizing, r=pcwalton
Fix reversed current/expected type

Fix some reversed type of arm pattern and type of search pattern
in error message.
auto merge of #5070 : youknowone/rust/struct-match2, r=nikomatsakis

It is reversed that type of arm pattern and type of search pattern
in error message.
rt: Make some runtime calls work outside of task context
auto merge of #5145 : Kimundi/rust/incoming, r=catamorphism
testsuite: Update and un-xfail #3601 test
auto merge of #5140 : yjh0502/rust/issue_4458, r=catamorphism

Fix is a bug fix for issue #4458.

This patch is quite straight-forward. A test for result_str() is added.
Turn old `drop` blocks into `Drop` traits
Introduce lifetime declarations into the lists of type parameters.

Major changes are:
- replace ~[ty_param] with Generics structure, which includes
  both OptVec<TyParam> and OptVec<Lifetime>;
- the use of syntax::opt_vec to avoid allocation for empty lists;

cc #4846
auto merge of #5149 : brson/rust/rt, r=brson

Just a few minor things required for freestanding Rust.
auto merge of #5141 : nikomatsakis/rust/region-syntax-expl-lifetimes, r=nikomatsakis

Major changes are:
- replace ~[ty_param] with Generics structure, which includes
  both OptVec<TyParam> and OptVec<Lifetime>;
- the use of syntax::opt_vec to avoid allocation for empty lists;

cc #4846

r? @graydon
Remove the last remnants of rtcalls
auto merge of #5106 : pnkfelix/rust/fix-docs, r=graydon

...s.  I freely admit I have not run a "make check" on this (trivial) change.
auto merge of #5098 : pkgw/rust/pr/issue4869, r=brson

See issue #4869. I'm not quite sure what constitutes "consensus from the core team" (cf. discussion in the issue), but this at least demonstrates that the proposed change is pretty straightforward.

After this change, there are no new test failures. I've un-ignored the `to_str` vectors test; it's not at all obvious to me why it'd be problematic, and it passes on my Linux machine.