Disabling autocomplete in string and comment contexts

Fix for MAGN-5099: http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-5099

Will add test cases shortly.

@Benglin please review
@Benglin, here the `string` passed into `IsInsideCommentOrString` is the entire block of code that's already typed into the code block node for now. This could be optimized later. Further I did check how they implemented this thing in SharpDevelop IDE. It's done in a similar way. I agree that ideally it would be good to have an IDE parser on top of the language parser that would handle parsing of user-facing code including non-assignment statements that we have issues with but that could be a separate effort. For now, I think we can have adequate tests for this implementation and keep it. Lastly it is not a risky change. Even if it's broken, which I don't think it is,  the user would see autocompletion getting triggered where it is not supposed to, which we can fix along the way.