Placeables: Make sure text is always escaped

highlight_placeables() was assuming that parse_placeables() will always
detect placeables correctly and was outputting text not part of a
placeable unescaped, but this is not a safe assumption as
parse_placeables() can fail to detect some placeables and we might end
up with unesacaped HTML material.
Added missing submission type attribute

Bulk actions performed offline were missing a value for this attribute.
We're adding it for consistency and completeness. Includes data migration
code.

Pick note: When this commit was picked from Evernote fork it suffered some
changes, like replacing the migration with code in the upgrade system, and
thus increasing the build number.
Added ALLOWED_HOSTS to the template development settings
Make tipsy tooltips fully opaque
sorttable.js can perfectly deal with multiple thead rows

(assuming the first thead row contains the actual headers and the others contain non-sortable 'header' entries)
Use CSS selectors for even/odd row coloring in translation table

Conflicts:
	pootle/static/css/style.css
	pootle/static/js/editor.js
Under Windows, the "nl_langinfo" method is not available
Show spinner in the middle of edit row
Use try/except instead of checking the function existence
pootle_store: Add database cache columns for wordcounts and suggestion count
pootle_store/caching: Update total_wordcount on Unit.save()
pootle_store/caching: Update wordcounts when creating a new Unit
pootle_store/caching: Update Store caches when saving an existing unit
pootle_store: Get rid of calc_*_wordcount
commands: Update refresh_stats to actually refresh stats
pootle_store: Only calculate difference once
pootle_store: Do not calculate target_wordcount, ever

count_words is an expensive operation, and we don't really use
target_wordcount anywhere important.
Where it is actually used can be dropped in later commits.