rust-mode.el uses the 'cl macros, so it should actually require them

Without this change, rust-mode doesn't work if 'cl hasn't been required
by something else, apparently.  I'm not entirely sure what changed such
that I started seeing this problem instead of not, but maybe the emacs
world has been making progress towards not loading 'cl at runtime if
it's only needed at compile time.
core: implement Clone for primitive types
kate: add Not to list of traits
kate: remove assert keyword
auto merge of #5294 : apasel422/rust/clone, r=nikomatsakis

This makes `#[deriving_clone]` useful.

I wasn't sure if a macro was the right way to do this, but it seems more maintainable than a series of repetitive `impl`s.
vec: renovate the BaseIter impl

* add 'self region to the borrowed pointer parameter
* rm workaround for #2263
* inline (wrappers)
* iter-trait is gone
auto merge of #5295 : apasel422/rust/kate, r=brson

Two small changes: `Not` was missing from the list of core traits and `assert` was removed from the language.
vec: cleanup
Remove @ast::Region and replace with @ast::Lifetime.
Modify pretty-printer to emit lifetimes and fix a few minor
parser bugs that this uncovered.
auto merge of #5296 : nikomatsakis/rust/region-syntax-expl-lifetimes-2, r=nikomatsakis

Modify pretty-printer to emit lifetimes and fix a few minor
parser bugs that this uncovered.

r? whomever.
auto merge of #5302 : thestinger/rust/vec, r=nikomatsakis
Break out const_addr_of.
Implement most of adjustment handling for consts.

Changes the ad-hoc closure adjustment into using adjustment info instead
of being separately driven from types, and likewise for autoderef.

Also takes care of autoref (the cases we should be seeing in consts,
at least, since we can't be doing method calls which would need the
ref-to-vec mode), which didn't quite work right previously.

However, "dereference" of a newtype isn't handled yet....
Let const_deref "dereference" newtypes.
Make a const translation test match TESTNAME=const
Don't print addr_of(addr_of(e)) as `&&e`, which means something else.
Add some tests for const auto-deref.

const-autoderef.rs is based on an example from jdm in IRC (but the
quadruple-pointer part is entirely my fault).
Don't copy const data to do an autoderef+autoref.
Const dereference works now, so allow it.
auto merge of #5285 : jld/rust/emacs-refix, r=brson

Without this change, rust-mode doesn't work if 'cl hasn't been required
by something else, apparently.  I'm not entirely sure what changed such
that I started seeing this problem instead of not, but maybe the emacs
world has been making progress towards not loading 'cl at runtime if
it's only needed at compile time.

(This change was previously submitted as e93a58d52 and accidentally reverted by ad8b437ad.)