updates to compile with LLVM 3.5
tweaks to compile with LLVM 3.1
removed pointless functions, implement virtuals in C backend