Issue 4635

Fix for #4635.
`check_match.rs` needs to be updated, but I couldn't figure out how. Tests are xfailed.
Code generation seems to work. Added a test `vec-matching-fold.rs`.

First commit is pure rename, since `tail` is no more appropriate.

`pat_vec(~[@pat], Option<@pat>)` was changed to `pat_vec(~[@pat], Option<uint>)`.

Before:
`[a]` parses to `pat_vec(~[a], None)`
`[a, ..b]` parses to `pat_vec(~[a], Some(b))`

After:
`[a]` parses to `pat_vec(~[a], None)`
`[a, ..b]` parses to `pat_vec(~[a, b], Some(1))`
`[..a, b]` parses to `pat_vec(~[a, b], Some(0))`
`[a, ..b, c]` parses to `pat_vec(~[a, b, c], Some(1))`