Use plugin provided text objects for all bindings.

Add text object state to `PlatformSpecificStateProvider` and build
combined text object state so that every command that operates on
a text object could use plugin provided text objects as well.

With this fix you could now comment out an argument with `ysaa/`,
or an entire method with `gcam`, pipe text until the improved end of
a paragraph with `!}`, and so on...