Refactor into clang++ bindings

Funny to have C++ bindings for c bindings for a C++ project - but the libclang library is much higher level than the core clang library and has more stable api guarantees.