Query for events now can return any type

Propagated <T> up the query chain.
Pass x => x instead of null when no projection