Improve qb validation

fixes some bugs in the tests, also fixes https://github.com/doctrine/phpcr-odm/issues/541

note ``Doctrine\Tests\ODM\PHPCR\Query\Builder\BuilderConverterPhpcrTest::testOrderBy`` is failing .. but honestly I don't really think such a test makes sense. It is way too complex to test as it requires so much mocking. IMHO we are better off testing this via the various existing functional test. So I vote for removing that test.

/cc @dantleech 

You mean automatically convert it to a localname operand? I think that would just give people the wrong idea. We could suggest to the developer that they change it in the exception message however.

I guess it might also be possible to add more abstraction, but it would require some thought. The design principle behind this QB was to not making any abstractions as far as possible so as to keep the full power of the PHPCR query system.