remove the unused exchange_malloc `align` parameter

`malloc` already returns memory correctly aligned for every possible
type in standard C, and that's enough for all types in Rust too
std: Implement `Iterator::size_hint` method for `Option` iterators
Impl Not for bool
Added overloaded Add and Sub traits for pointer arithmetic

Implemented ptr arithmetic for *T and *mut T. Tests passing
bright white for the message, similar to clang
Fix typo in docs for MutableCloneableVector
Require `extern "Rust" fn main()` exactly
auto merge of #7657 : thestinger/rust/rollup, r=thestinger

d3be8ab r=brson
05eb3cf r=thestinger
c80f4e1 r=huonw
8c27af1 r=huonw
0eee0b6 r=cmr
ea2756a r=thestinger
209abd8 r=cmr