Merge the Round trait into the Float trait

Move the rounding functions into the `std::num::Float` trait and then remove `std::num::Round`.

This continues the flattening of the numeric traits tracked in #10387. The aim is to make `std::num` very simple and tied to the built in types, leaving the definition of more complex numeric towers to third-party libraries.

[breaking-change]
Have floating point functions take their parameters by value.

Make all of the methods in `std::num::Float` take `self` and their other parameters by value.

Some of the `Float` methods took their parameters by value, and others took them by reference. This standardises them to one convention. The `Float` trait is intended for the built in IEEE 754 numbers only so we don't have to worry about the trait serving types of larger sizes.

[breaking-change]
Fix formatting in float implementations
Reorder Float methods in trait definition and make consistent in impls
remove meaningless sentence and update copyright.
fix copyright message based on `make check`
fix and improve shootout-chameneos-redux

* fix official shootout test (spacing)
* use libgreen to improve performances
* simplify and modernize code
* remove warnings
Update the "Additional tutorials" link
str: Inline `only_ascii` in string iterators.

Was killing performance of selector matching in Servo.
Fixed typo in tutorial

Replaced "len" by "length", to match the given code example.
rustc: move the method and vtable maps into ty::ctxt.
rustc: de-@ method and vtable maps.
rustc: de-@ ty::AutoAdjustment.
rustc: remove unused errors_reported field from regionck.
rustc: make MemCategorizationContext immutable.
rustc: de-@ lang_items.
rustc: de-@ some RefCell's.
rustc: de-@ freevars.
rustc: de-@ lint.
rustc: de-@ resolve.