arg_find and noeval_hash don't allocate memory
Renamed snapshot_* functions
Fixed eval_expand_macros - wasn't doing word-by-word
Changed comment about double-expand
Fixed tokenise - don't shortcircuit at ')'

e.g. #define yo x(()) - we stop at the first ')' which isn't what we
want in this case, it's useful for stopping early for #define func(),
but not worth the complexity.
Working symbols/linking with underscore prefixing
Double-eval both function and normal macros

Added test for normal macros
More cpp tests
__VA_ARGS__ test files
__VA_ARGS__ as a normal argument (# and ## todo)
Get the include path when handling <...>
Variadic arguments can be empty
Check for __VA_ARGS__ in 0-va-arg instances
Tests for ## with VA_ARGS
Inc/dec .blue, don't force it
Don't blue-out a macro if it's an uninvoked function

This fixes cases where we defer macro expansion until another macro
Changes to who owns what memory for eval functions
Fixed memory leaks
cpp non conformace problems
Don't jump ahead after expand - skip over a word

This fixes an issue with jumping behind where we were before expansion