Changed the LLVM dll hardcoded name to a configurable constant.
Changed Function and BasicBlock from structs to subclasses of Value.
Added pointed type to TypeRef.
Some other minor changes.