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
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.
Merge branch 'enum-method-privacy' of https://github.com/michaelwoerister/rust into rollup

Conflicts:
	src/libsyntax/opt_vec.rs
Merge branch 'vec-exh' of https://github.com/stepancheg/rust into rollup
Merge branch 'trie-bound-iters' of https://github.com/dim-an/rust into rollup
Merge branch 'master' of https://github.com/p2j4d2c/rust into rollup
Merge branch 'issue-8393-attributes-in-macros' of https://github.com/nikomatsakis/rust into rollup
Merge branch 'master' of https://github.com/MAnyKey/rust into rollup
Merge branch 'match' of https://github.com/msullivan/rust into rollup
auto merge of #8444 : erickt/rust/rollup, r=cmr

This merges these PR together:

#8430: r=thestinger 
#8370: r=thestinger
#8386: r=bstrie
#8388: r=thestinger
#8390: r=graydon
#8394: r=graydon
#8402: r=thestinger
#8403: r=catamorphism