Extracted text editing logic in a separate class

Editor specific method and fields are extracted to a dedicated Editor class.

Some private fields and methods had to be made package private so that the
Editor can see them. No change in the public API.

Other changes in this CL:
- The Blink class no longer has a WeakReference to the TextView
- EasyEditSpanController is no longer a field of ChangeWatcher.

Future work:
remove the getEditor() method in TextView and
clean whitespaces and indentation.
remove the EasyEditSpanController as a change watcher, fix spanWatcher

Change-Id: I1fbe0176b6bd27d90f556dc3a90469367f77437c
2 files changed