Add get operator replacement intention

This patch adds an intention to replace `a.get(...)` calls with `a[...]` (Task 0)

This does add a fairly extensive base class and adds a new (sub)package. However, this makes it much easier to add other function call replacement intentions: https://github.com/Stebalien/kotlin/compare/add-get-intention...other-intentions

Unfortunately, I can't (reasonably) subclass `JetSelfTargetingIntention` due to my `getText` and `getFamilyText` definitions.

Notes:
* It doesn't allow named arguments because they can't be preserved in the `[...]` syntax.
* It doesn't allow the dangling functional argument because I would have to put it inside the square brackets.
* It preserves whitespace and comments.

Merge this first: https://github.com/JetBrains/kotlin/pull/342