Initial implementation of field-based permissions.
 - Fields form now contains a table for read/write permissions for
   each role.

 - In the Fields controller, post_add and post_edit save read/write permissions
   through Verify. When creating a new field, read/write permissions are also
   created. Hyperadmin is hard-coded to always have read/write.

 - Roles listed in the admin interface are selected using a new model (Role) which
   extends \Verify\Models\Role.

   o It contains a modified version of Eloqent::all() which accepts a
     $safe parameter. When $safe is set, items whose ids match those within
     the $protected (static) variable are removed from the results returned.
     This is being used to ensure that certain protected roles, such as 'Hyperadmin'
     can be filtered out from those listed in the admin interface.

   o It also contains a sanitize_ids method. By sanitizing ID arrays with it prior
     to sync/save, we can ensure that $protected roles (which should not be editable
     via the admin interface) are removed from the update. This should help protect
     against malicious fiddling of POST variables.
Permissions fields now pre-populate on the edit form
Added Libraries\Kent\Form to extend Laravel\Form.
 - This provides 'fieldIfPermitted' filtering on form fields, which
   controls whether they are rendered (potentially with 'readonly') or not.
Added restrictions to ProgrammeFields model to check user has permission to
save the fields on a field-by-field basis. Fields  are being correctly displayed
(or not displayed) based upon permissions. For the sake of consistency, we are no
longer running colnames through Revisionable to make them human readable.
Updated CKEditor to run as setReadOnly if element being replaced has
readonly attribute set.
Fixed pre-existing security problem where Hyper Administrator rights could be assigned
by a regular Admin (including upgrading themselves).

  o There are several ways to resolve this issue - e.g. reserve manage_users permissions
    for Hyper Administrators only; ensure that users can only grant access to roles with a
    lower 'level' value, etc. I opted for restricting the granting of 'Hyper Administrator'
    to other Hyper Administrators as it means that the 'manage_users' privilege retains
    semantic meaning/purpose, and we are not currently using a heirarchical permissions
    paradigm elsewhere in the application.
Updated Kent\Form and models to use Laravel code conventions at Alex's request
 - Have left controller logic formatted as it is for now (already
   appears to use mixed conventions)
Added help text and some padding for the field/permissions UI
Added Form::if_permitted($name) for wrapping around field blocks
 - If statment wraps around label, input and help-text to avoid orphaned
   field markup when an input isn't permitted.
Added migration to create permissions for existing fields, and to grant read to Admin
Further improved compliance with coding standards, removed superflous granting of permissions to Hyper Admin (this is assumed by Verify)
Form amended to use Bootstrap collapseable
Added migration to create permissions for current sections
Added slugify to ProgrammeSection model (used to retrieve title)
Autoexpand permissions can be set through the sections interface
 - Added permissions to forms, with label/help text translations
 - Updated controller do set relevant variables and to save permissions
Merge pull request #288 from unikent/feature/schools_ui

Schools UI for programme editing.