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 

In your version you call `->getField` in the ordering walker. But `->getField` only applies to the `OperandDynamicField` node, not to any of the other DynamicOperands (length, lowercase, localname) etc.

The error message should be about not being able to use the nodename (or an association) field as a dynamic operand. 

In fact we should probably just simply check to see if the field is mapped to a something which corresponds to a PHPCR property?