Fix #2122, AllowedFunctions Ignored on Queryable Call
- add tests and fix causes of this bug

Tests:
- correct parameter order of `Assert.Equal()` calls in `FilterBinderTests`
 - confused failure reports
- test ODL cast()/isof() bindings
 - previous v3 tests missing
 - previous v4 isof() tests missing
 - previous v4 cast() tests focused on non-entity types
- test #2122 validation scenarios

Fixes:
- correct typo -- "IsOf" -> "isof"
 - otherwise `isof()` function was ignored during validation
- check `AllowedFunctions` before validating rest of `all()` and `any()`
- add default branches for `switch` on `QueryNodeKind` in `FilterQueryValidator`
 - throw `NotSupportedException` if reached, matching `FilterBinder` behaviour
 - reference unexpected kinds explicitly, showing what's not supported
- add v4 validation of `SingleEntityFunctionCall` nodes
 - leave v3 validation as-is (above); that `FilterBinder` doesn't support these nodes
Update OData assembly versions to 5.3.1.0