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.
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
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
convert `pure` to a reserved keyword
auto merge of #8162 : thestinger/rust/no-copy, r=brson
auto merge of #8149 : omasanori/rust/cleanup, r=alexcrichton

Fixed a warning.