autodescribe support for variables

This is a much cleaner patch of some of the work in #156.

It adds tests for variables in autodescribe and the clang implementation.

@scopatz can you have a quick look and check the types in the tests are correct.  I'm not certain where a `const int foo[2]` is a `(('int32', 'const'), 2)` or `(('int32', 2) 'const')`.  In fact, those seem like the same type!