Made the vector test file a little bit more tricky
Finally found out why some of the harder cursors inside of e.g.
vector::operator[]( ... ) were not showing their args correctly.

clang_annotateTokens() DOES NOT do the same thing as
clang_getTokenLocation() and clang_getCursor() for that loc.  I
rewrote my own annotate tokens function and it works like fucking
magic.
Modified+Added test cases.
Hacked around w/keywords+identifiers so that basic type keywords are
shown as identifiers and not keywords.  However, there appear to be
some missing cases, such as in the template test case file for 'static
const int x = ...' where int is not coloured as an identifier.

It makes me reconsider whether I should hack this to work, or just
accept the fact that it is a keyword, and display it as such.  I can
see both sides, and I'm not sure which result is more desirable.
Cleanup of cpp code to remove spurious debug messages and consolidate
output for quicker processing.
Added sniper.cpp source that helps by showing a files AST and some
nice cursors.
Massive elisp mods to make most vars buffer local, and use
a (re-)highlight request queue with delta beg/end regions to determine
how to perform refontification.  Revert font-lock override
functionality (at least temporarily) and just do separate font-lock
updates whenever data from a request is returned.

Working somewhat but needs more work done, and corner case testing.