Refactored QueryResponse

No longer has hard coded casting based on conditionals. Instead casts to
IFacet<F> where F is FacetItem (or subclass).

No longer throws invalid cast exception will instead return empty enumeration of F. Can easily be adjusted to throw invalid cast exception or new FieldNotFoundException?