Add TextObjectProvider interface and default impl.
Integrate TextObjectProvider in core and providers

Instead of calling NormalMode.textObjects(), all code now uses the
TextObjectProvider interface. This way the calling code doesn't need to
know where the TextObjects come from.

PlatformSpecificStateProvider now has an initializeProvider method so
that a TextObjectProvider instance can be passed.
Add extension point for TextObjectProviders.
Convert plugins to TextObject Provider extension.
Use TextObjectProvider to get TextObjects.

The Cdt plugin was not updated, fix compile error.
Merge pull request #386 from albertdev/plugin-textobjprovider

Create TextObjectProvider extension point, refactor plugins