Warn when leaving page with unsaved comment
Fix ARRAY(0x..) keywords when cloning bugs
Put cloned bug title into bug from which it was cloned
Localisation layer for Bugzilla, separated from templates

Languages are put into i18n/<lang>/ and consist of:
* messages.pl - messages for translating templates, substituted at compile time
* runtime.pl - messages that are needed in runtime, setup/strings.txt.pl is moved here
* messages.js - messages for JavaScripts

Templates aren't subdivided into languages anymore; the single
'template/localised' directory is used, and [% L('Message text') %]
or [% L('Message $1 text is $2', 'Param1', 'Param2') %] is used in
the templates. Both forms are substituted at template compile time.

Localised templates are auto-generated from English ones by the
contrib/extract-strings.pl script which also uses i18n/en/blacklist.pl
to determine what strings shouldn't be translated.

So, the commit includes:
* contrib/extract-strings.pl -- script for translating TT templates
* i18n/en/blacklist.pl -- blacklist of messages that should not be auto-extracted
* Template adjustments for more correct string extraction
  (for example, TT does not allow expressions in hash keys)
* Template adjustments for string extraction from JavaScript blocks
* js/*.js adjustments for using i18n messages
* Compile-time i18n message substitution implementation
* Bugzilla::Language class that manages loading of i18n messages