Added the ability to delete documents from the index.

Indexer.delete(Query) deletes all documents matching a Lucene query.
Use this to delete documents with certain metadata, like all documents
from a single source, or a document with a unique id.
Added method to parse a Query using Lucene's parser.

(LuceneUtil.parseLuceneQuery(), used in QueryTool for document
filtering)
Fixed bug with Comparator commutativity.

In some cases (comparisons where one of the arguments was the empty
string), sorting would throw a java.lang.IllegalArgumentException with
message "Comparison method violates its general contract!". Four
HitProperty/DocProperty classes have been updated to make sure this
can't happen anymore.