Handle salutations with regexp special characters.

Fixes #1104.
Fix typo
Merge branch 'release/0.14' into rails-3-develop
Fix a radio button label when updating a request status

Clicking on the "This request requires administrator attention"
label would actually select the "I've received an error message"
option due to the label referring to the wrong input element.
This change corrects the label.

Thanks to Jedidiah Broadbent for spotting this bug.

Fixes #1113
Remove important terms

These are only being rendered into a comment, and have been for a long
time. They now appear to be causing problems with non-ascii characters
in ruby 1.9, so drop them completely.
Merge branch 'feature/fix-for-issue-1120' into rails-3-develop
Merge remote-tracking branch 'origin/radio-button-fix' into rails-3-develop
Move special case to whatdotheyknow-theme

Apart from anything else, we don't want translators to have to worry
about the special case text. See https://github.com/mysociety/whatdotheyknow-theme/commit/2078febca5181ce3b1a9c0fae0123ae5f6448718 for the corresponding change to whatdotheyknow-theme.
Add some translator's notes on the use of 'follow up'.
Add to fixtures a public body with an accented initial letter

This adds a public body called "Åčçèñtéd Authority" in the
Czech locale (cs) so that we can create tests that exercise,
for example, searching based on an initial letter that has a
multi-byte representation in UTF-8.

An old test for "add mass tags" in the admin needed to be updated
since it implicitly assumed that all the public bodies in the
fixtures had translations in the :en locale.

The tests for loading CSV files of public bodies also needed to
be updated, since they were assuming that public body names
only contained letters in [A-Za-z ].  Since Unicode character
classes aren't easily available in Ruby 1.8 and it makes little
difference to the test, the character class is replaced by '.'.
Allow public body listing based on first letter outside US-ASCII

Under Ruby 1.8, it was previously impossible to use one of the "first
letter" alphabet links on the public body listing page if the first
letter was outside [A-Za-z] since the test for the parameter only
being a single letter wasn't aware of the possibly of multi-byte
characters.  In addition, upcasing of letters outside [A-Za-z] didn't
work because String#upcase in Ruby 1.8 isn't Unicode-aware.
This commit fixes these two problems, so that non-US-ASCII first
letter links will work under Ruby 1.8.

(Fixes #1112.)
Fix upcasing of a non-US-ASCII first letter under Ruby 1.8

In the rare circumstance that someone created a public body
whose name started with a lower case letter outside [a-z]
with Alaveteli running under Ruby 1.8, the letter would not be
upcased correctly before saving to the first_letter column.
This commit fixes that by using a Unicode-aware upcase function.
Merge remote-tracking branch 'origin/first-letter-unicode-fixes' into rails-3-develop
Factor out a 'with_duplicate_xapian_job_creation' helper

In a subsequent commit, we will want to wrap an additional section
of code with the addition and removal of a hook that creates a
duplicate xapian job, so it's useful for this to be factored out.

This commit introduces a 'with_duplicate_xapian_job_creation'
method that can be passed a block which will be run with the forced
duplicate xapian job creation.
Fix for an aborted transaction not being rolled-back

We were seeing errors in xapian_create_job that indicated that the
current transaction had been aborted but not rolled-back.  It seems
that this happened because sometimes xapian_create_job was called
from within another transaction (e.g. from the transaction block in
AdminIncomingMessageController#redeliver).  The default behaviour
of nested transactions in Rails is for them to behave as if all
but the outermost transaction blocks had no effect; this means
that the exception thrown in the inner transaction block in
xapian_create_job wasn't causing a rollback, and it was then being
caught before propagating up to the outermost transaction. Thus
the transaction was never being rolled-back so any subsequent
operation on this database connection would error.

This commit fixes this problem by using the :requires_new => true
option to transaction, which asks ActiveRecord to fake genuinely
nested transcations using SAVEPOINT.

Fixes #1124.
Merge branch 'feature/followup-translators-notes' into rails-3-develop
Merge branch 'feature/email-subject-cleanup' into rails-3-develop
Merge remote-tracking branch 'origin/fix-aborted-transaction' into rails-3-develop
Remove static error pages

As far as I can tell, these should never get accessed, so their presence
is a bit confusing.
Make theme URL to theme name mapping consistent

The code that extracted the theme name from each entry in THEME_URLS (in
order to require code from a directory whose leaf name is the theme
name) only supported git URLs that ended in '.git'.   However, the
themes:install rake task usefully supports a wider range of git URLs -
for example, all of the following were supported:

   /home/whoever/themes/blah-theme => blah-theme
   /home/whoever/themes/blah-theme/ => blah-theme
   git://wherever/blah-theme.git => blah-theme
   ssh://wherever/blah-theme.git// => blah-theme

This commit factors out a theme_url_to_theme_name method,
adds tests for it, and uses that method in both:

   lib/tasks/themes.rake
   config/initializers/theme_loader.rb

... so that a wider range of theme URLs are consistently supported.