Node -> Tokens navigation, token list navigation

This is a the start of 2.x work. We can significantly simplify new rules using this kind of navigation.
So if that returns `undefined`, than customer of that method should check for it before using? So i can't just do `if (getTokenByRangeStart(...).value === '[')`, i would need to do something like this:

```js
var token = getTokenByRangeStart(...);

if (token && token.value === "["){
...
}
```

Maybe, for convenience sake, it could return some fake token instead of `undefined`, like 
```js
{ 
  type: '',
  value: '',
  range: [ -1, -1 ],
  loc: { start: { line: -1, column: -0 }, end: { line: -1, column: -1 } },
  _tokenIndex: -1 
}
```