Add the elasticsearch client gem.
Add stub classes for search behaviour.
Add code and unit tests for IndexableNeed
Rename key `id` to `need_id`
Add assertions for fields required by the indexer
Add organisation_ids to fields being indexed
Remove duplicated field
Remove index related fields
Add an indexer class.
Add a basic class for doing searches.
Add initialisers for search.
Add a basic presenter for elasticsearch results.
Present search results as Need-like objects.
Present search results from the need controller.
Fill in missing tests for need updating.
Index needs on create and update.

The integration tests have been changed enough to avoid breaking
existing tests, but they don't test the actual search functionality yet.
Rename method to use a test index.

`stub_search` implies that we're stubbing out the search with a fake
one, rather than a real one pointing at a test index.
Integration test for searching needs.
Wait for the test index to start itself up.
Catch elasticsearch errors in the Indexer class.

We can then catch and handle all these in the controller without it
having to know it's backed by elasticsearch.