Provide a "configure" option to disable LLVM assertions

Builds are considerably faster without assertions, so when working on
e.g. libstd, which doesn't directly interact with LLVM, one might want
to disable them.
Reduce code bloat from assert!()

Assertions without a message get a generated message that consists of a
prefix plus the stringified expression that is being asserted. That
prefix is currently a unique string, while a static string would be
sufficient and needs less code.
Revert atomicrmw {max, min, umax, umin}
Implement Zero for unit
Remove unused variables.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
auto merge of #8147 : dotdash/rust/assertion_option, r=pcwalton

Builds are considerably faster without assertions, so when working on
e.g. libstd, which doesn't directly interact with LLVM, one might want
to disable them.
Give tasks useful names. #2891
Move atomically to unstable::sync, and document what it actually does. Close #7872.
auto merge of #8150 : dotdash/rust/assert_bloat, r=huonw

Assertions without a message get a generated message that consists of a
prefix plus the stringified expression that is being asserted. That
prefix is currently a unique string, while a static string would be
sufficient and needs less code.
auto merge of #8151 : sanxiyn/rust/atomicrmw, r=cmr

#8039 broke ARM build, and nothing uses these yet.
std: Remove PortSet. Not supported by new scheduler. Replace uses with SharedChan.
test: add more codegen tests, add copyright headers to all.
mk/tests.mk: fix typo "srcrustllvm"
mk/tests.mk: remove mention of nonexistent files
rm ancient error for lowercase kinds

3 of these kinds no longer even exist in the CamelCase form
remove `copy` as a keyword
test: Disable morestack tests

The new scheduler does not yet implement split stacks
register snapshots.
auto merge of #8177 : graydon/rust/2013-07-31-register-new-snapshots, r=thestinger

r? someone
make `in` and `foreach` get treated as keywords