Self referential

Hello,

Had some issues with self-referential relationships, in particular the many-to-one and many-to-many queries. 

I added tests for both. 

The fixes are in
1. the `VersionExpressionReflector` (which was misbehaving in the self-referential case, it was replacing a column with a value when it shouldn't have)
2. the many-to-one query where the correlation was causing problems and
3. the many-to-many which should have used the secondaryjoin instead of custom logic.

Causes self-referential subquery to lack a `FROM`, causing a crash. I couldn't find use of this correlate for any other purpose, I think here we actually don't want a correlated subquery but a non-correlated one. The tests succeed without it.