added language justification to DESIGN.md

clean up codegenDeclaration
WIP intefaces and constructors
test implicit constructor
classes are now reference types

classes can be allocated with 'new'
function types composition is now deferred to decide type of 'this'
'this' is now passes as a pointer for structs, and reference for classes (essentially a pointer)
'this' is now immutable

TODO fix delete
TODO fix function pointers
fixed function pointers

named type info for LLVM IR
allow reference (class) -> pointer conversion
fixed static array indexing and ptr
correctly assign array values

correctly removes tmp directory after building
function overload WIP
Merge branch 'interfaces' of https://github.com/bsurmanski/wlc into interfaces
WIP function overload, mod of ASTType for polymorphism
using MethodValue/FunctionValue
simple function overloading, module scope and in class