avoid clang's partial specialization bug in variable template

I reported this bug.
http://llvm.org/bugs/show_bug.cgi?id=19558
add reference to node to symbols and other tiny updates

- separate declarations in ast.hpp to ast_fwd.hpp
- update Guardfile to use tmux if available
- all symbols have a type