From looking at, we are injecting the entity query factory class into our controllers, so we can use entity queries to do things. However, at the moment there is no interface, so you have to type the actual factory class name. This makes it harder to switch out entity query factories, and harder to test. If someone wanted to swap out the confing QueryFactory class for instance, they would have a hard time if we type the parameters.
It makes sense to create QueryFactoryInterface that they all implement. Then it solves our problem. We can also clean up the QueryFactory classes while we're there, as config a field_storage_sql Queryfactory classes are passing the entity manager as a param to get/getAggregate, when we could just get the container to pass this into the constructor for us, as we are in the entity QueryFactory class.
PASSED: [[SimpleTest]]: [MySQL] 57,705 pass(es).
PASSED: [[SimpleTest]]: [MySQL] 57,581 pass(es).
PASSED: [[SimpleTest]]: [MySQL] 58,205 pass(es).