Add a general document interface for use in operations.
The UndoManager and TrivialUndoManager classes are adapted to the generalized interface.
Merge pull request #350 from vandenoever/genericDocument

Add a general document interface for use in operations.
Split the word boundary filter out of SelectionController

Primary intent is to reduce the size of the selection controller class,
in preparation for some additional fixes to aid word boundary detection
in non-english languages.
Rewrite move & select via word boundaries to use a step iterator
Rewrite range-based word boundary expansion to use step iterators
Cope with non-latin alphabets when searching for word boundaries

This has been sourced from http://apps.timwhitlock.info/js/regex, which
creates these sets using the cset JS library. The set includes all
punctuation components only.

Addresses issue #268