Emoji module

This PR moves the emoji functionality into its own module, makes it not touch emoji codes inside code spans/blocks, and adds unit tests for it.