Refer to GOV.UK Signon consistently

When referring to GOV.UK Signon, we should be consistent and use
Signon, not Sign On.
Merge pull request #267 from alphagov/refer-to-signon-consistently

Refer to GOV.UK Signon consistently
Fix suspended_user factory.

reason_for_suspension is mandatory for a suspended user
Improve indices on event_logs table.

Given we're nearly always selecting the most recent entries from the
table, extending the index to include the `created_at` column avoids
having to do a filesort.

With original index:
mysql> explain SELECT `event_logs`.* FROM `event_logs` WHERE `event_logs`.`uid` = 'fd016f20-f219-012f-9436-12313c09b582' AND `event_logs`.`event` = 'Account unsuspended' ORDER BY created_at DESC LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: event_logs
         type: ref
possible_keys: index_event_logs_on_uid
          key: index_event_logs_on_uid
      key_len: 767
          ref: const
         rows: 429655
        Extra: Using where; Using filesort
1 row in set (0.00 sec)

With updated index:
mysql> explain SELECT `event_logs`.* FROM `event_logs` WHERE `event_logs`.`uid` = 'fd016f20-f219-012f-9436-12313c09b582' AND `event_logs`.`event` = 'Account unsuspended' ORDER BY created_at DESC LIMIT 1\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: event_logs
         type: ref
possible_keys: index_event_logs_on_uid_and_created_at
          key: index_event_logs_on_uid_and_created_at
      key_len: 767
          ref: const
         rows: 432722
        Extra: Using where
1 row in set (0.00 sec)

This has required updating a test that was relying on the database
returning events with identical timestamps in a particular order.  This
no longer holds with the new index.
Don't auto-suspend recently unsuspended users.

Additionally, don't send them spurious reminder emails.

We are currently having issues with the workflow for unsuspending a user
who has been auto-suspended. Currently when the user is unsuspended by
an admin, the auto-suspension process will re-suspend them at 5am the
following day if they haven't logged in by then. This is a problem for
many users as they may work part-time, or in a different time zone, and
therefore not be able to login within that period.

This adds a 3 day grace period after unsuspension during which time the
account will not be auto-suspended.
Merge pull request #269 from alphagov/unsuspension_grace_period2

Don't auto-suspend recently unsuspended users.
Changes to auto-suspension emails

Changes to the auto-suspension notification and reminder emails to make
them clearer and more consistent.
Merge pull request #270 from alphagov/suspension-email-changes

Changes to auto-suspension notification and reminder emails
Adding and removing link_to references to GOV.UK

Adding link_to references to www.gov.uk in HTML emails and removing
from text only emails.
Merge pull request #271 from alphagov/suspension-email-amends

Adding and removing link_to references to GOV.UK
https://www.agileplannerapp.com/boards/173808/cards/5255
https://www.agileplannerapp.com/boards/173808/cards/5254

Simplify and restrict what users are able to do on Signon.

 * 'Filter by Role' shows roles that are appropriate for the current user
 * Only be able to administer users lower in the permission hierarchy
 * Restrict the abilities of Admin and Organisation Admin users
 * Can only grant users permissions for apps that the admin user can also access
Show union of admin and user applications
Introduced new role and added tests for granting permissions
fix controller tests
fix integration test