Bug 835506: Add facebookapps.utils unit tests

Tests for app_data_query_string_encode handle normal conversion of a dict into an app_data query string for Facebook apps.

Tests for unwrap_signed_request function handle empty signed request, changing the locale from Facebook format (underscore) to Playdoh format (hyphen) and a normal unwrap of a signed request object. Two utility functions are also added for use by the tests, one that creates a dummy dictionary to encode and the other to encode it.

Tests for get_best_locale function handle supported locales and a variety of cases for unsupported locales: unsupported locales of a language with support and completely unsupported languages (returns default locale). Tests also assert that in all the tested cases that a supported locale is always returned and that the active locale is not changed (the best locale is merely returned). To pass tests, locales are now always converted to lowercase before comparison. Also corrected the exception type when language isn't found in supported locales.

Tests for js_redirect verify that the returned response has the appropriate HTML elements for JavaScript redirection with the new assert_js_redirect assertion method.
Bug 835506: Add facebookapps.decorators unit tests

Tests for facebook_locale handle bad locale from Facebook (empty or unsupported), already using Facebook's locale, redirecting to Facebook's locale and preserving GET parameters. To pass test, request is no longer sent to get_best_locale function and ? is only appended to locale redirect URL if query string is present.

Tests for extract_app_data handles empty app_data from Facebook, the normal extraction of app_data and makes sure that the previous contents of GET remain in the dictionary.

Test views were added for both decorator functions. Also added was a new assertion for redirect response.
Bug 835506: Add facebookapps.views unit tests

Tests for tab_redirect view handle FACEBOOK_TAB_URL lazy setting, normal HTTP header redirect to tab, JavaScript redirect, correct HTTP header for iframe usage and converting GET query string into a Facebook app_data query string. To pass the tests, fixes string interpolation of the FACEBOOK_TAB_URL setting for Python 2.6 and only appends ? to URL if a query string is present.

Tests for Download Tab views handle normal HTTP request and check for OK response code, download button selector and JavaScript hooks. Also check for HTTP header for iframe usage.

Adds assertion to TestCase for verifying iframe HTTP headers, fixes some style issues and removes unused import in facebookapps.models.
Bug 764015: Update Download Tab copy

Also adjust styles for copy changes and center features list.
Merge pull request #793 from Nobox/download-tab-tests

Bug 835506: Download Tab tests and copy changes