Exclude id field from _source

Fixes #78
Fix (seemingly unrelated) bug in test_annotation

For some reason, by introducing the `'_source':{'excludes':['id']}`,
suddenly Elasticsearch does not store empty objects into arrays in the
`_source` anymore. Elasticsearch bug?
Make Elasticsearch read _id from the id field

Achieved by specifying a `path` in the mapping for `_id`.
See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-id-field.html
On save, set op_type to 'create' in absence of id
Add tests for op_type
Remove superfluous ann.id alias for ann['id']
Merge pull request #81 from Treora/exclude_id

Exclude id field from _source
Move query transformations to store.py

The _Model.search_raw method now becomes just a simple interface to
elasticsearch's search.
Pull error handling out of ES.search_raw

Errors are to be handled by the caller. In principle, search_raw is just
a thin layer covering Elasticsearch.search to insert the index name and
document type.
Add a test for Annotation.search_raw
Allow overriding es.authorization_enabled
Add a docstring
Change search_raw's return value

This makes the output consistent with that of a normal search. search_raw is now only raw in the sense that the query is raw, not the result.
Add raw_result option, revert change to REST API

Raw results may be useful sometimes, why not just give it as an option.
Update docs, fix typo
Make test showing issue #73: capitalisation
Disable analyzing custom fields

The keyword analyzer practically means not doing analysis.
Update analyzer settings in mapping
Docstring for _Model
Merge pull request #87 from Treora/revise_search_raw

Revise search_raw