Refactoring LINQ provider and expressions to handle ToListAsync, CountAsync, ...

- still a work in progress !
LINQ: simplified Union/Intersect, simplified expression compilation, added Explain(...), removed dead code, ...

- expression caching needs to be redone