Fix crash when getting member completion for an object literal

The following code caused a crash:
```TS
function f(a: { xa?: number; xb?: number; }) { }
var xc;
f({
    $
```
This changes the find the relevant token at the beginning of getCompletionsAtPosition. This fixes the crash, but the following case still does not work:

```TS
function f(a: { xa: number; xb: number; }) { }
var xc;
f({
    $
```
This represents the next item to be done, which is making the type checker give us the right contextual type.
It's not really clear what is going on for someone running into the code for the first time. I didn't figure it out until I read the assertion. Please add a quick comment.