Check type when struct is matched against enum-like pattern

Previously check always succeeded because struct type was derived from
the matched expression, not the matched pattern.
vim improvements

1. Highlight new lifetime syntax
2. Visually distinguish `unsafe` keyword
3. Add a new file that highlights column 78, to warn when lines get too long
Created libcore/private/intrinsics.rs, which aims to contain every
rustc intrinsic. Several files in libcore have been changed to use
these intrinsics.
As of yet, none of the intrinsics are documented.
Changed a test to use intrinsics.rs and changed a few lines that were too long, had bad whitespace, etc.
auto merge of #5046 : sanxiyn/rust/struct-match, r=catamorphism

Previously check always succeeded because struct type was derived from the matched expression, not the matched pattern.

Fix #4849.
auto merge of #5043 : brson/rust/swap, r=brson

r?
rustc: Use position method in check::method

...because it appears to work now. Removes a FIXME.
auto merge of #5049 : bstrie/rust/vim, r=catamorphism

1. Highlight new lifetime syntax
2. Visually distinguish `unsafe` keyword
3. Add a new file that highlights column 78, to warn when lines get too long
librustc: Get rid of structural records save for front/test.rs.
Fix fallout in rusti & rustpkg.
librustc: tidy
Merge
Fix flipped tuple that was causing all that pain
Fix vdef pattern
Merge
auto merge of #5066 : catamorphism/rust/luqmana-derecording, r=catamorphism

Most work done by @luqmana and @pcwalton - I just rebased.
auto merge of #5058 : Thiez/rust/incoming, r=catamorphism

I've moved all intrinsics in a single file (libcore/private/intrinsics.rs) and changed a few files to make use of this file (e.g. vec.rs: move_val_init).

Two intrinsics have been commented out:
visit_tydesc: it uses TyDesc and TyVisitor, this would create a dependency on librustc which seems undesirable.
frame_address: I really had no idea what it should look like without the legacy modes (would it even work? In several places in libcore the (legacy-modes) intrinsics were wrapped
with a normal fn) and what it was supposed to do.

Some documentation is still required, but many names are fairly self-explanatory.
librustc: Separate most trait bounds with '+'. rs=plussing
auto merge of #5063 : pcwalton/rust/plussing, r=pcwalton
Implement #[deriving_eq] on tuple like structs