Wrap clang_visitChildren in the C++ bindings.

- All accesses to raw libclang datatypes are now unnecessary.
- The visitor function is provided via a user-defined class which uses CRTP to
  inherit the clang_visitChildren machinery.
Moved findDefinition to the new clang_visitChildren interface.