add a `__settings__` for es models

Let models store any settings they need to function, such as
custom analysis settings, in a class attribute `__settings__`.

Add an `update_settings()` class method which closes the index
and updates the settings before re-opening. Useful for migration
scripts and interactive upgrades, or for live use in development.
threading `path_hierarchy` field

Add a `thread` field to the annotation model which is intended
to store an array of references, as in e-mail threading,
containing the ids of the ancestor messages.

The thread can easily be reassembled from these using the common
threading algorithm by jwz: http://www.jwz.org/doc/threading.html
Modified structure for supporting generic selectors in general, context+position-based selectors in particular
Modified selector type string to match Randall's suggestion
Introduced the new storage format for annotations
Added back obsolete quote field for compatibility. Improved code comments.
Removed obsolete fields for now. Compatibility can be achieved by other means.
restore quote field for bw compatibility
whitespace
fix up index mappings

- some index_name settings were being used on objects where they didn't
  need to be
- don't index the Range selector
- stick to OA naming
Document delete field as boolean
offset fields should be long integers
revert to not using custom analyzers for threading
Update README to follow pip's changes syntax
Merge branch 'master' into develop

Conflicts:
	README.md
	annotator/annotation.py
Fix for h issue: #448
Merge branch 'master' into develop
Merge remote-tracking branch 'hypothesis/develop'

merged fuzzy anchoring