Add emoticon support.

This is done by constructing a really
long regex containing all codes, parenthesized
by emoticon set. The number of the matched
group tells us what set to look in.
Preload some more DOM elements.

This might be premature optimization, but it
seems likely that reusing a stored reference
is less costly than executing a jQuery selector.
Trim some old commented-out code.
Add clickable icons for emoticons and ponicons.

Styling the ponicon list is a bit messy (hard-coding
some assumptions about the page layout, etc.) but works.
The insertText method currently requires browsers to
support selectionStart and selectionEnd on textarea elements.