Keep event-trap non-inline unless composing text

Inline blocks will cause the browser to allow word-wrapping to occur
either side of the node, an effect that is VERY undesirable for a
caret.

Making the event trap absolute, but expanded to the full height of the
cursor shows the composition menu displays in the same place as if
the trap was an inline-block. The cursor and trap are switched to inline
blocks during composition so the contained characters take up space in
the document.
Merge pull request #346 from peitschie/fix-word-break-cursor

Keep event-trap non-inline unless composing text
do not build NodeJS; require it instead
Merge pull request #351 from kogmbh/th-dont-build-nodejs

do not build NodeJS; require it instead
Add a general document interface for use in operations.
The UndoManager and TrivialUndoManager classes are adapted to the generalized interface.