Implemented a MarkupField.

This field renders the page bodies using any of the existing markup
filters and stores the result in the cache. By using this, we'll remove the
need for extra <field>_html fields for storing the HTML contents.

Part of bug 2828.
Moved markup-specific code to pootle.core.markup.
Adapt existing models to use MarkupField fields for markup.

Removes the requirement for extra DB columns and handles the conversion
transparently without the need to override model's save.

Fixes bug 2828.
Use a custom JSON encoder.

This allows to transparently call force_unicode on objects that may
need it.
We're at least on Python 2.5, so use hashlib directly.
Organized imports.
Added comment.
Removed copies of timezone helpers.

We are already on 1.4+, so we can import the helpers straight from the
framework.
Organized imports.
Use functools.wraps.

This is available since Python 2.5, so there's no need to roll our own
thing for this task.
Changed slug to virtual_path.

This will allow to use more characters than in slugs; forward slashes,
for instance.

Fixes bug 2843.