Fix vector syntax in error messages
Consolidate codes dealing with LLVM struct type
remove oldsmallintmap

Closes #4738
Fix slice printing
Report error for non constant vector repeat count

Fix issue #3645
Emacs: Update emacs mode to be more similar to the vim mode.

Copy the keyword list, and add `self` so that it is somewhat highlighted
(being liberal with the correct categories).
auto merge of #5095 : thestinger/rust/smallintmap, r=catamorphism

Closes #4738.

The `std::smallintmap` module doesn't use an implicit @ box so I just added that explicitly for now to make porting simple.
auto merge of #5072 : youknowone/rust/repeat_count, r=brson

Fix issue #3645
auto merge of #5084 : oncemoreification/rust/issue-4517, r=brson

Patch for #4517

This works for fixed vectors, but I am unclear how slices should be printed, simply '&[...]'  or...

e.i. How should regions be printed?
auto merge of #5089 : sanxiyn/rust/llvm-struct, r=pcwalton

Note on `struct_elt`: the comment is wrong, it actually dereferences the nth element of LLVM struct type if it is a pointer. That's why `T_ptr` is removed in `callee.rs`.
auto merge of #5103 : dbaupp/rust/emacs-mode-update, r=graydon

Copy the keyword list from rust.vim, and add `self` so that it is highlighted
(being liberal with the correct categories).

I'm not quite willing to dive in to clean up the emacs code yet, but at least this gets a (more) modern syntax highlighting list.
librustc: Implement a lint mode for mutable structures; deny by default. r=tjc
libcore: Move Cell to core and de-~mut core and std
test: De-~mut the test suite. rs=demuting
libsyntax: Stop parsing `~mut`
librustc: De-[mut] librustc (remove all mutable arrays). rs=demuting
test: De-[mut] (remove all mutable arrays from) the tests. rs=demuting
librustc: Make `&const [T]` mean the same thing as `&[const T]`