Fixed bad page update args in Admin.php

Update call was missing args for $user and $clean.
Modified error sanitising to allow code blocks

Using the sanitize_html() function instead of fix() so we can keep the
prettified errors.
Added a permission model for pages

Public pages can be viewed by anyone. Pages that are not public can be
viewed only by groups with permission to view pages. Big thanks to
@onmoon for original implementation.
Fixed tabindex in page_fields.twig
Fixed unicode emoji implementation
Moved emoji support to Trigger constructor

This means we don’t get multiple emoji filters stacking up.
Fixed bug in clean -> dirty URL translations

The `url(archive/Y/m/d/)` constructor for daily archives is broken
because the monthly archive URL triggers a match before the daily
archive URL can be tested.

I’ve swapped the order of the URLs so that a match for daily archive is
tested first. I’ve also added a URL for the yearly archive.
Added cookie policy message

The message is displayed once to new visitors in order to comply with
EU Directive 2002/58 on Privacy and Electronic Communications.
Likes: mutation observer for ajax-loaded posts

Mutation observer catches and activates like gadgets in ajax-loaded
posts (adds compatibility with cascade module and inline editing).
Fixed snafu in domain for a Categorize translation
Password changing: fixed silent fallback

Attempting to change your password with a non-matching confirmation now
results in an error instead of silent fallback.
Check email address on user controls form
Merge pull request #207 from xenocrat/develop

A lot of improvements and bug fixes.
Thanks to @xenocrat for this fantastic contribution.