Implement #156, Added expansion to destructuring

Implements #156 (oldest open issue currently).  Namely @epidemian's [proposal](https://github.com/jashkenas/coffee-script/issues/156#issuecomment-17941507) (same as #870).
```coffee
[first, middle..., last] = array # works today
[first, .., last] = array # works with this PR

[.., last] = ratherLongVariableName
last = ratherLongVariableName[ratherLongVariableName.length - 1] # rather long
[.., last] = a
last = a[a.length - 1] # still longer, repetitive 
```
This matches nicely the ability of taking first `n` elements out of an array.

```coffee
[first, .., last] = tuple # first = tuple[0], last = tuple[tuple.length - 1];
```