Add initial documentation

With @kalleth and @themitchell
Add cucumber tests for basic search functionality

Some of our document formats (AAIB and Drug Safety Updates, for
example) have many documents, and our publishing tool doesn't easily
allow users to find a document to amend other than by paging through the
results.

We should allow users to search by either slug or title using a form on
the list page.
Add 'reform' gem to represent search form

In order to use the rails form helpers, and get niceties such as the
form reflecting the model during the search process, we need the object
storing the form parameters to conform to an ActiveModel style API.

By adding `reform`, we have the ability to do this without backing it
with a persisted model.

In specialist-publisher, we used to do this with app/view_adapters, but
these have become so customised to specialist documents that creating a
new view adapter would be overcomplex for this requirement.
Allow users to search for documents by slug or title

* Display a search form (partial) on the index page for all specialist
  documents

* Modify the ListDocumentsService to accept a search_details argument
  describing parameters the user searches for

* If the user is searching rather than listing, truncate the number of
  results to the kaminari pagination limit. This is because doing
  anything else would require modifying the paginator to paginate the
  sorted collection, which isn't straightforward. The limitation this
  adds (cannot view more than the top 50 results of a search) has been
  cleared with the PO.
Merge pull request #286 from alphagov/add_search_form

Allow searching Specialist Documents by Slug and Title
Add case sensitive help text to search form
Introduce timecop
Merge pull request #287 from alphagov/add-case-sensitive-help-text

Add case sensitive help text to search form
Fix registrations on AAIB reports

The import script added both registration (an array) and registration
string (as string) to extra fields. Desired behaviour was to just use
string.
Removed registration array, and renamed registration string to
registration.
Add published_at date to DSU on publish!

Trello ticket: https://trello.com/c/ZW0i6nya/362-add-first-published-date-to-the-dsu-finder-3-1

Add published_at date to drug safety updates on #publish! As this is part of the metadata for DSU we should store this in the DrugSafetyUpdate class not the SpecialistDocument class.
Make sure published dates are reset on withdrawal
Formatting fix on Dependencies on README

I'm not sure this is the best way of contributing this fix, so feel free to force push this commit out if I did it wrong.
Merge pull request #288 from alphagov/fix-registration-fields

Fix registrations on AAIB reports
Remove `IdGenerator` class and object-constant-based calls of it

The `IdGenerator` object did very little. It can be summed up as the
following bit of code: `SecureRandom.uuid`. Keeping it around doesn't
add anything and it makes it hard to understand why the constant form
of the object is being called in the way it does.

Removing it means there's one less thing to understand in terms of
using the already existing `*Builder` classes.
Merge pull request #285 from alphagov/add-readme

Add initial documentation
Merge pull request #290 from alphagov/reduce-repetition-of-id-generator-calls

Remove `IdGenerator` class and object-constant-based calls of it
Add how to add a new document format to readme

This commit adds a step by step guide for adding a new document format
along with how to to test that document format.
Merge pull request #292 from alphagov/how-to-add-a-new-document-format

Add how to add a new document format to readme
Add MAIB Reports to routes.rb
Add schema for MAIB Reports

Facets for MAIB Reports are vessel type, report type and date of
occurrence.