Search changes

This pull request adds the following changes:

 - All fields are now added to the index by default for filtering. You only need to configure fields that you want to full text search on
 - Scrapped ElasticUtils/pyelasticsearch. Wagtailsearch now uses the official elasticsearch-py library
 - Tests are no longer run with wagtailsearch signal handlers enabled
 - add_bulk is now a generator (so we can provide feedback during the bulk add process)
 - Indexed class refactor
 - Queries now run on QuerySets rather than models. This allows more complex filters to be run.

TODO (for this PR):
 - Unit tests

TODO (for future PR):
 - Make ElasticSearch.search return a queryset (with the internal query object swapped out for an ElasticSearch one)
 - Add search method to Indexed class
 - Remove wagtailcore specific code from search view
 - Split editors picks into own module

Example of searching on a queryset (using PageQuerySet #185):

    events.get_descendants().not_descendant_of(past_events).live().search("Hello world!")

This will search all live pages that are in the events section but exclude pages which are in the past_events sub section.