Kconfig updates for v4.17

- improve checkpatch for more precise Kconfig code checking

- clarify effective selects by grouping reverse dependencies in help

- do not write out '# CONFIG_FOO is not set' from invisible symbols

- make oldconfig as silent as it should be

- rename 'silentoldconfig' to 'syncconfig'

- add unit-test framework and several test cases

- warn unmet dependency of tristate symbols

- make unmet dependency warnings readable, removing false positives

- improve recursive include detection

- use yylineno to simplify the line number tracking

- misc cleanups