basic inheritance of class members

classes have single inheritance
if no base class is specified, base is runtime 'Object' class
    (thus all objects will extend object by default)
    TODO: add a 'void' inheritance to specify no 'Object' parent
class members are accesible like normal struct members using dot
    TODO: allow class methods
refactoring WIP

todo: types will be referenced by ID instead of pointer, allowing for simplification
    of ASTType struct; removing info pointer and instead making ASTType polymorphic

todo: creating an ASTVisitor class to assist in traversing the AST. will use this to
    create a verify/validate/realize types and the AST.