Rename assert_eq arguments to left and right.

The names expected and actual are not used anymore in the output. It also
removes the confusion that the argument order is the opposite of junit.
Make BTree's Handle system more generic and more powerful, removing some runtine checks in favor of newly gained static safety
syntax/ast_util: add `is_by_value_binop()`
Tell typeck which binops are by value
Tell trans which binops are by value
Tell expr_use_visitor which binops are by value
Tell regionck which binops are by value
libcore: convert binop traits to by value
libcore: fix move semantics fallout
libcollections: Vec<T> + &[T]
libcollections: String + &str
libcollections: make `EnumSet` binops by value
libstd: convert `BitFlags` binops to by value
libstd: convert `Duration` binops to by value
libtime: convert `Timespec` binops to by value
libsyntax: convert `BytePos`/`CharPos` binops to by value
libsyntax: convert `LockstepIterSize` binops to by value
librustc: convert `TypeContents` binops to by value
librustdoc: convert `Counts` binops to by value
Test that binops consume their arguments