Made it possible to specify desired context size for a Hits object.

Context size (number of words around hit) is used for sorting on left or
right context and for generating concordances.
Improved grouping and per-document results; some API improvements.

* Added Searcher methods without fieldName parameter (contents
field is used by default) for cleaner code
* Changed order of parameters for Searcher.find(),
Searcher.createSpanQuery() methods to put the
TextPattern first and the (optional) fieldName second.
* Made DocProperty, DocGroupProperty and GroupProperty classes similar
to HitProperty classes (use HitPropValues instead of Strings, use
HitPropValue.toString() instead of getHumanReadableIdentity(), provide
get() and compare() methods)
* Added serialize and deserialize methods to
HitPropValue() to easily pass these values in GET URLs (useful e.g. when
viewing hits from a specific group to pass the group identity). To
deserialize a serialized HitPropValue, call the static method
HitPropValue.deserialize().
* Provided a few more specific compare() methods in the above classes
for efficiency.
* Changed order of parameters in Hits() constructors; made fieldName
optional (uses contents field from Searcher by default).
* Used constants instead of repeating "contents" all the time.
* Deprecated Hits constructor taking a Spans (use the one taking a
SpanQuery instead, it's more efficient)
Merge remote-tracking branch 'origin/master'