Simplify state management within ElasticSearch ext

Rather than explicitly looking up the app within the ElasticSearch Flask
extension, we can lean more heavily on Flask, and just use current_app
to do this.

We also ensure that a connection instance is bound to a given context,
and is memoised for the duration of the context's life. This means that
connection pooling within the connection class is respected, and we
don't open a new TCP connection every time we call es.conn.
Support for Elasticsearch 1.0

This commit updates the annotator.elasticsearch.ElasticSearch Flask
extension to provide support for Elasticsearch 1.0 through use of the
recently-released official client[1] in preference to pyes.

[1]: http://www.elasticsearch.org/blog/unleash-the-clients-ruby-python-php-perl/
Restore RuntimeError if called outside app context

This is a major error and should throw a big nasty error.

Thank you Python 2.6 for picking up on this. This commit also fixes
compatibility with 2.6.
Backwards compatibility with older Elasticsearch

The official client library for Elasticsearch now has *almost* the same
Python API across two major versions (0.4.x to 1.0.x) allowing us to
provide backwards compatibility with Elasticsearch 0.90.x.

Notes added to the README about how to enable this.
Support missing scheme on host string

The example cfg file was written this way. I've changed it now, but
it's easy enough to support this case.
Merge pull request #70 from okfn/elasticsearch-1.0-compat

Support for Elasticsearch 1.0