Add keyword search placeholder option for Finders

For some Finders "eg `document.noun` title` doesn't make sense. This
commit allows us to specify a keyword_search_placeholder in the schema
and have it used for the keyword facet. It default to using
document.noun if this isn't present.
Merge pull request #103 from alphagov/add-keyword-search-placeholder-option-for-finders

Add keyword search placeholder option for Finders
Use "document noun title" if no placeholder

After the work in b223db47d4e4b291f88959fb9ef88a302a58f3ed, Finders
without a placeholder specified used nil. This commit correctly uses the
fetch to return document_noun title if no placeholder is provided.
Merge pull request #104 from alphagov/correctly-show-document-noun-if-no-placeholder

Use "document noun title" if no placeholder
Display 1000+ if there's more than 1000 results

For Finders with a large number of documents, such as AAIB Reports,
telling the User that there's more results that we display helps them to
narrow their search.
Merge pull request #105 from alphagov/more-than-1000-results

Display 1000+ if there's more than 1000 results
2 digit years that can be in the past

With the fix for Ruby's bananas YY/MM/DD date format guess, any 2 digit
year would be assumed to be in the 21st century. This commit allows
Users to give 2 digits and get a year in the 20th century by checking if
the year given is in any of the next 50 and if not, assumes it's in the
previous 50.
Merge pull request #106 from alphagov/infer-2-digit-years-being-in-the-past

2 digit years that can be in the past
Add failing test for auto-update bug

Because search calls are asyncronous, it is possible for the results on a page to be in-consistent with the search form. This happens as follows:

1. Checkbox1 is checked triggering a search
2. An asynchronous call to the server (via cache etc) is made (call1)
3. Checkbox1 is unchecked triggering another search
4. Another async call to server is made (call2)
5. Call2 returns before call1
6. Search results for call2 are displayed
7. Call1 returns
8. Search results for call1 are displayed
9. The search results are now out of step with the checkboxes :(

This test requires that a state is passed in with the response when calling displayResults() and if the state matches the current (i.e. most up to date state) then the search results should be updated, else they should be ignored.
Require an action to be passed in to displayResults

Use the action (or state, as LiveSearch calls it) to check that these are the most up to date results, if the state has changed in the meantime, the search results block should not be updated.
Fix newly failing test

Pass the state into calls to updateResults so the tests pass
Merge pull request #107 from alphagov/fix-chaining-bug

Fix search auto-update bug