CreateMethodProposal refactoring

To reuse behaviour in abstract members implementation feature
Abstract members implementation added

Current version limitations:
1) There is no stub generation for abstract val/vars
2) Type parameters for defs are not generated
3) The text overlaps with the icon in quick fix menu when there is one abstract method
4) Additional brace is added to the class while invoking abstract member implementation feature from class/trait with empty body:
class Test extends TestTrait {^
}
(but for: class Test extends TestTrait {^} result is correct)
5) Stub for abstract member is not generated while invoking abstract member implementation feature if the cursor is on `class`/`trait` keyword: cla^ss Test extends TestTrait