draft: Migrate Draft to use ORM
draft: Avoid ajax requests for setting up the draft

Drafts now are placed directly into the HTML response. The response contains
the draft information as well as the original content saved in the database
for the content being modified. The draft itself is placed into the redactor
box rather than the current content.

This patch also reduces some of the [Draft Saved] notices where there is no
content or the content has not yet been modified.
draft: Fix image uploading, pasting and dropping
Fix initial popup of [Draft Saved]

Instead, only show the box if the draft has been modified since initially
created / updated.
draft: Support arbitrary depth of draft field
draft: Fix creation of client drafts
draft: Fixup lookup of draft objects via AJAX
draft: Put inline image draft race to rest

The solution is simple: upload the image, create the draft automatically,
attach the image to the draft, return the draft_id to the client. That's it.
There's no more need to create the draft in advance now.
Remove unnecessary callback for config
i18n: Add concept of translatable content
i18n: Open custom data translations to a wider world
i18n: Make topics, SLAs, lists, list items translatable
i18n: Localize team and group names
i18n: Site pages are translatable
i18n: Implement system language management
Implement client l10n of new ticket forms
i18n: Default to system primary language
i18n: Make the translate widget show a flag

to indicate the primary language expected for translatable content
i18n: Make textarea inputs translatable
Add draft support for site page translataions