Move to elastic version 1.0

I made the xtas.tasks.es module compatible with elasticsearch 1.0. It
is probably no longer compatible with earlier versions.

The testing for exact result representation bothered me so I also added methods
to get results from elastic search and used those for testing. I also makes sense
to have set/get pairs.

- Updates es module to use _source rather than field in the search.
- Added get_single_result and get_all_results functions to fetch existing
  results.
- Renamed test_backend to test_es and updated tests to check input-output
  consistency rather than a specific representation.
Add caching pipelining for single documents (fixes #9)

Pipelines are created by transforming a list-of-dicts specification into celery
tasks, which are then chained. Optionally, store_single tasks are placed at the
end of the chain or after each task.

Before creating the chain it checks how much of the result is already stored,
and starts processing from the stored result 'furthest' in the pipeline.

Issues:
- since store_single only accepts a string as 'taskname', it is now a concatenation
  of the celery task names of the chained tasks. This is (a) not very nice and
  (b) is a technical detail that belongs in es, not in pipeline
- parameters (such as nltk 'model') are disregarded at the moment
- I dislike the 'blocking' parameter, I feel that the pipeline function should
  always return an AsyncResult. However, if the whole result is in cache, there
  is no celery task to run (so no AsyncResult) to return. So, with blocking=False
  the return type depends on the state (nasty). The only solution I see is to
  'mock' an asyncresult, but that is not much nicer.
  (on second thought, if pipeline is used as a task, it doesn't matter so much,
  as pipeline.delay().collect() will always return the actual result)