Added GazetteerQuery and QueryBuilder classes and modified Gazetteer interface and Lucene implementation so it provides a single query method that accepts a GazetteerQuery as a parameter.  Added the ability to filter query results by ancestor and feature code.  Updated the index builder so it adds a new multi-valued field, ANCESTOR_IDS, that contains the gazetteer ID of all parents of a particular location.  This is separate from the PARENT_ID field because the order in which values are returned from Lucene Documents is not guaranteed so a multi-valued field can't be easily used for ancestry resolution.  Therefore, PARENT_ID is used for resolution and ANCESTOR_IDS is used for filtering.
Added toString() to LocationOccurence and QueryBuilder.  Updated LuceneGazetteer so it creates a Filter for all non-name portions of the query parameters (feature code, ancestry, historical, etc.) so those criteria are not included in the scoring to avoid unexpected results because scores were weighted differently.  Updated ClavinLocationResolver to use the new QueryBuilder.
Ported MultipartLocationName and refactored to use new Gazetteer interface.  Updated SupplementaryGazetteer.