Search Changes 4 - Build ElasticSearch documents in ElasticSearch backend

This pull requests creates a new ```ElasticSearchMapping``` class which is used for building mappings and documents for indexing things in Elasticsearch.