Modified to compile on GCC, hopefully still works in MSVC.
Separated implementation of var class into separate files.
Updated Makefile to reflect changes.
Changed internal containers to pointers thereof to allow them to self-reference var class. (Normally "struct a { std::vector<a> av; };" isn't allowed as "a" has incomplete type.)