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.)