Clang format 3.5
New project file using new linter.
forward declaration for everything.
Add include for c++ headers.
Beginning of refactor.  Class definitions go into fwd.hpp  Everything else becomes an impl.
Move val and var to their own fwd files.
More refactoring into fwd and implementation.  Introduced core_access for friending accross the code base.
Added the concept of a stack_var which is a position on the stack.  Useful for efficency and iteration.
Fixed a bunch of build errors.
Fixed the rest of the build issues.
Fix stack_guard move constructor.