Created ElasticSearchMapping class
Added repr to ElasticSearchMapping
Moved document building methods from indexed into ElasticSearchMapping
Added repr to indexed.BaseField
SearchFields configuration is now used in the backends
Previously, we just converted them to make them look like indexed_fields.
We now convert indexed_fields into SearchFields objects and pass them to the backend.
Created get_field_mapping method on ElasticSearchMapping class
Moved field mapping generation code into ElasticSearchMapping class
Remove any duplicate search fields of the same type
Cleaned up database backend search method
Made quotes more consistant
Don't run tests with wagtailsearch signal handlers enabled
Removed 'object_indexed' check from update_index command

Conflicts:
	wagtail/wagtailsearch/management/commands/update_index.py
Fixed a few more double quotes
Give some feedback from the add_bulk command
Set index:'not_analysed' setting on content_type field
Index fields with correct type in ElasticSearch

Previously, everything was converted to a string before indexing in ElasticSearch.
This caused issues where certian filters may not work as expected (such as a greater than filter on an integer field)

This commit changes this by adding type conversion into the ElasticSearch backend.
Exclude filter fields from _all. Explicitly include search fields in _all
Update Page.route API so that it returns a Page instance rather than an HttpResponse; catch the latter in the 'serve' view for backward compatibility
Catch the deprecation warning for old-style routes during unit tests
Implement before_serve_page hook