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.
Merge pull request #349 from kaedroho/searchchanges/elasticsearchtypes

Search Changes 8 - Index fields with correct type in ElasticSearch