Fixed various issues and implemented some new features around the new ScanningQueryEngine

This PR contains different commits related to different query-related issues, as follows:
* MODE-2178 - fixed the code for various types of JOINS and also shareable nodes. Enabled back all the previously disabled Tck tests
* MODE-2247 - implemented the `INTERSECT` and `EXCEPT` operations together with several new test cases
* MODE-2209 - implemented the ability to check `READ` permissions for nodes returned from a query, via a new `NodeSequence` implementation
I'm tempted to just always check the nodes' permissions each time the sequence is used. Chances are, we'll have very few duplicates, and even if that does pose to be a performance problem we can optimize it later on.