[533] Themes prototype

WARNING: The styling sucks.

Requires theme-primary adding to facet list on configuration

These changes add several new features:

 - Tag facets on the search page have been moved down and themes have been inserted near the top.
 - There is a new themes page at /data/themes that shows all the themes and has some space for some text etc.
 - A theme homepage exists at /data/themes/theme such as /data/themes/health which shows several popular, and new datasets in that theme as well as boxes for the drupal information.
 - The search box on a theme homepage just applies a facet and searchs on /data/search
 - A tool for 'guessing' what theme a particular dataset should have based on the publisher.  It isn't perfect and still leaves a lot not set, but at least shows what the theme stuff could look like.

    python ckanext/dgu/bin/theme-guesser.py n

Replace the final n with y when ready to run and commit changes.

Needs:
  - Per theme dataset icons (to differentiate them).
  - Styling properly.
  - An API from drupal to get apps/ideas for a theme.
[528] When a group is not found, checks historical names and redirects
[575] Makes the url field readonly when editing (not creating) publisher.

Bonus fix, added the white box that was missing from publisher/new
[87] Modifies the JSON returned to the publisher search page to include abbreviations
[598] Fixes utf8 encoding issue with twitter link
[575] Ensure that the url isn't automatically modified when changing title on existing group.

When we have an existing group the following rules apply:

Sysadmin can change title, but url doesn't change. Instead url has a tooltip asking to contact a systemin.

When an admin edits a publisher they can already not edit the title, and the url will be disabled with the previous message about contacting a sysadmin.
[569] Adds original's description to start of newly found description
[570] Refined scraper per-resource to make it easier to find/use data
[87] Add group abbreviation to search index.

Modifies the search schema and the searchindexing to make sure that group
abbreviations are added to the index, so that searches on the package search
page will return hits for that publisher.  Seems to work with NIO (Northern
Ireland Office) although only returns 4 hits so need to investigate deeper
into why it isn't returning all datasets for that publisher.
[noticket] Track changes to dgu-joint-assets
[noticket] Describe detail about each plugin, to help move to CKAN 2.0.
[noticket] Disable a rogue activity stream.
[630] ONS importer - rogue tags - fixed.
Merge branch 'master' of github.com:datagovuk/ckanext-dgu
[569] Changes to the view of resources for ONS datasets. [incomplete]

Groups datasets by the release date (if it exists) and then allows
for all of the resources within a particular release to be viewed on
a different page.

Also changes read.html to allow for the breadcrumb to be specified there rather than in each template loaded via read.html.
Merge branch 'master' of github.com:datagovuk/ckanext-dgu
[636] Remove watch scripts & install GruntJS task config
[636] Execute task runner. Recompile CSS & JS using Grunt's internal scripts.
[636] Refactor theme into public/ and src/ folders.
[636] Use 'grunt images' to populate public/images/ from src/images. Saved 500kb of page weight.