Tighten dashboard JSON schema

- Slugs can only contain lowercase letters, hyphens and numbers
- Some fields now have a minimum and maximum length. The maximum
  length is defined as the currently longest string that field
  contains, rounded up to the nearest 10 or 100.
Validate departments and agencies against schema

Pedantry.

- The Deputy Prime Minister's Office is abbreviated DPMO
- Ministry of Justice is MOJ with a big O
- Same for Department for Transport (DFT)
- But not Department for Education (DfE)
- The Environment Agency is not a department

These points are taken by looking at departments sites, as well
as the style guide.

Please note that I have left the Land Registry as an agency, even
though it is a department. This is a bug that I've opened separately:

https://github.com/alphagov/spotlight/issues/755
Fix bug in module schema

This bug meant that schema was evaluated to an empty object, and
when you validate anything against an empty object it succeeds.

Therefore, our KPI and completion rate modules were not being
validated.

Add a vague "test" for that.
Remove dashboard-strapline property from JSON

I can't see anywhere this is used.
Tighten schema for modules

- Add maximum lengths to text fields
- Validate slugs against a pattern
- Ensure that new modules must appear in module.json
Update schema README
Remove module-schema.json from spec directory

This has been superceded by the schema/ directory.
Merge pull request #757 from alphagov/tighten-json-schema

Tighten JSON schema