Consolidate query generation in QueryShardContext
Currently we have a lot of methods left in QueryShardContext that take parsers or BytesReference arguments to do some xContent parsing on the shard. While this still seems necessary in some cases (e.g. percolation, phrase suggester), the shard context should only be concerned with generating lucene queries from QueryBuilders. This change removes all of the parseX() methods in favour of two public methods toQuery(QueryBuilder) and toFilter(QueryBuilder) that either call the query builders toFilter() or toQuery() method and move all code required for parsing out to the respective callers.