Add public accessor to for `is_single_entity` to Query class
Fixes: #4934
This is useful when writing middleware between your application
and sqlalchemy, to inspect what type of results we will be seeing.
As an example,
```
def issue_query_and_wrap_results(query, Wrapper):
results = query.all()
for result in results:
if q.is_single_entity:
return Wrapper(result)
else:
return tuple(Wrapper(r) for r in result)
```
Without this accessor, you need to inspect the return results or private members of the
query and try to guess the intent