Enhanced validation of schema integrity:
- field, argument and directive names must not start with two underscores (__)
- directive must not reference itself, either directly or indirectly
- argument default value must not contain cycles
- deprecated directive is not allowed to be used on mandatory input field/argument