SPARK-1964: Don't use the UI dispatcher thread when not needed.
Actions that don't affect the UI should not be executed in the heavily synchronized dispatcher. It will needlessly delay execution, but also make the dispatcher thread unavailable for tasks that do belong there.
SPARK-1963: Prevent calculation of unchanged avatar data.
There's no need to recalculate an avatar hash if the avatar didn't change. Preventing this will improve performance.
SPARK-1962: Use key-based lookups to find correct emoticon.
This replaces an earlier implementation that'd iterate over all emoticons in a pack when searching for a match with a particular text.