KDE Framework 5.0

- Remove Smart*
- Cleanup Cursor and Range classes (non virtual!)
-- mark as movable
-- inline as much as possible
-- declare Q_MOVABLE_TYPE: http://doc.qt.nokia.com/qq/qq19-containers.html
-- remove Range* from Cursor
- Dropping KTextEditor::Plugin/View interface
- KTE: drop unneeded code completion interfaces 2, 3, 4
- KTE: Merge some interfaces
- KTE: add Document::readWriteChanged, remove from KateDocument
- KTE: search for places marked with "KDE5"
- KTE: export Kate Part Scripting
- KTE: drop MarkInterface
  - replace it with an interface based on KTE::MovingCursors
  - this way, we can drop a lot of code dedicated just for mark handling
  - example
    - a mark could be set to MovingCursor(line, 0) with StayOnInsert
    - drawing the bookmark works just like now
    - if lines are joined the bookmark changes to MoveOnInsert (*)
    - if lines are wrapped at the mark position, change back to StayOnInsert (*)
    - (*) right now, we don't have a MovingCursorFeedback class, so if we
      want to adapt the insert behavior manually (again special code)...
      ...or add as additional flag to InsertBehavior: WrapOnLineWrap
      this way the mark would automatically always stay on the correct line,
      even when joining text and wrapping it again
  - still provide some default mark types
  - https://bugs.kde.org/show_bug.cgi?id=243375
    maybe move incRef(), decRef() into KTE::Factory or KTE::Editor?
- scrolling API: http://bugs.kde.org/show_bug.cgi?id=138956
