Toggle hyperlink active state via classes rather than custom XML attrs

Toggling a custom attribute on a custom XML element doesn't properly
update the visual state on some browsers (e.g., WebKit on OSX). Using
CSS classes instead seems to be better handled in these browsers,
correctly updating the mouse cursor icon on the fly.
Clean up API dox
Normalize keyboard events involving modifiers

For keys that are also modifiers (e.g., Ctrl), different browsers +
platforms may report the modifier flag as leading or lagging the
keypress event. For example, pressing the ctrl key in FF on Linux will
report (ctrlKey:false)in the keydown event, while Chrome on Linux will
report (ctrlKey:true) in the keydown event. For these specific cases,
normalize the modifier flag so it is always the set to true.

Fixes issue #322.
Merge pull request #462 from peitschie/active-link-toggle

Toggle hyperlink active state via classes rather than custom XML attrs