Update formatters to escape HTML input by default

This pull request updates formatters to have a consistent behaviour.

1. If **no** formatter is provided then any html entities found in content will be escaped.
2. If a formatter **is** provided then it is the responsibility of the formatter to escape external content.
3. The sortable plugin no longer passes formatted html into the `headerFormatter`, it now wraps the returned value instead.
4. All plugins that monkey patch formatters now escape the html if no user formatter is provided.

This introduces backward incompatible changes, but in the interest of providing a responsible and secure library I think it's worth it. Perhaps we could publish it under a `beta` flag for a few weeks to allow people to update?