Refactor GetOperatorBounds

1. It should operate on ranges only
2. Add some tests
3. Reorganize in order to create projectProvider once
Cache lex states to handle multiline comments and strings correctly

Fix #22.
Fix #24.