Added character with modifiers callback.

The undefined behaviour changed with #40 has been reverted, meaning the
character-only callback again behaves like a system text field.  This behaviour
has now been defined in the documentation.

Fixes #203.
Fixes #305.