Adapt the getter macro to implement Clone, Eq and Ord for n-ary tuples
Use match instead of intermediate variable
Replace Tuple{2..12} trait with CloneableTuple{2..12} and ImmutableTuple{2..12}

Make n{0..11} methods return cloned values, and create n{0..12}_ref methods for returning references
Fix Ord implementation to use lexical ordering
Move tuple tests into submodule
Correct tuple Ord impl, add Total{Eq,Ord} impls and add some tests.
auto merge of #6595 : bjz/rust/core-tuple, r=thestinger