Improved resolving of target method for ParameterInfo

This is not full pull request but I'm mostly looking for your opinion if I'm approaching this correctly... Because I want to test a bit more stuff around when Window is displayed and hidden...

Is it acceptable that I changed public MiniLexer interface here I mean
```csharp
public void Parse(Action<char> act = null)
```
to
```csharp
public bool Parse(Func<char, int, bool> act = null)
```
Should I keep old one and new one as overload? Atm to my knowledge its only used here: https://github.com/mono/monodevelop/blob/master/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/OnTheFlyFormatter.cs#L119

baseUnit = ParseStub("x] = a[1"); change to baseUnit = ParseStub("x]"); based on my testing this is much better in cases when we are inside other invocations. I really can't see reason why "= a[1" is necessary... Hoping someone can enlighten me :) 

Is it OK that I'm ignoring completionChar because I'm now depending only on offset could this cause any problems?

I threw out whole of comma because in case of "Console.WriteLine(str[0,$"(See UnitTest for whole example)
It tried to first with invocation:
```csharp
invoke = GetInvocationBeforeCursor(true) ?? GetIndexerBeforeCursor();
```
which was wrong because it should with
```csharp
invoke = GetIndexerBeforeCursor();
```

Because now I'm stepping backward to first [,( or < we don't have to worry about comma anymore...

I'm also working on much better overload picking because currently it only looks at number of parameters and not arguments/parameters type matching but I want to do this stuff in multiple pulls to be more digestible :)