Follow-up to HSEARCH-3544, where I noticed that:
we call entity projections "object" in the projection DSL, and use "O" as a generic type parameter in such cases, and have a class named "ObjectLoader" but we only ever use these for entity objects, and we even have a "asEntity" method in the query DSL. Let's be consistent and use Entity/E everywhere.
we sometimes use T, sometimes R for generic parameters related to query hits. T is annoying because it often conflicts with other type parameters, and R is annoying because it conflicts with the type parameter for the result type, which extends SearchResult<T> and contains the hits. Let's go with H instead?