Enable privacy check for enum methods.
Fix incorrect non-exhaustive matching for fixed length vecs

Code like this is fixed now:

```
fn foo(p: [u8, ..4]) {
    match p {
        [a, b, c, d] => {}
    };
}
```

Invalid constructors are not reported as errors yet:

```
fn foo(p: [u8, ..4]) {
    match p {
        [_, _, _] => {} // this should be error
        [_, _, _, _, _, .._] => {} // and this
        _ => {}
    }
}
```

Issue #8311 is partially fixed by this commit. Fixed-length arrays in
let statement are not yet allowed:

```
let [a, b, c] = [1, 2, 3]; // still fails
```
rust-mode: make indentation customizable

Add new variable rust-indent-offset, defaulting to
the old value, and use it.
typo in tutorial
Allow attributes to appear as macro arguments

Fixes #8393
Isolate common wait_end logic
Implement `lower_bound_iter`/`upper_bound_iter` for TrieMap/TrieSet
Switch to using .enumerate() some places in _match.
Fix vector pattern matching. Closes #6909.
Fix some warnings.
Fix interaction between default matches and guards. Closes #3121.
Mass rename of .consume{,_iter}() to .move_iter()

cc #7887
Clean up some unused imports in tests
std: merge iterator::DoubleEndedIterator and DoubleEndedIteratorUtil
std: merge Iterator and IteratorUtil
std: Rename Iterator.transform -> .map

cc #5898
std: Iterator.take_ -> .take
std: Iterator.flat_map_ -> .flat_map
std: Iterator.chain_ -> .chain
std: Iterator.last_ -> .last