Adds a function to emit object file directly.

It takes a filename and a module, and emits the object
code automatically for the host system.
Remove LLVMAddBasicAliasAnalysisPass from extra.h

This removes a multiple-definition error when linking the bindings
to static library of llvm 3.0, rather than a shared library.
Merge pull request #1 from derivingShow/master

Remove LLVMAddBasicAliasAnalysisPass from extra.h
Update to compile with LLVM-3.1.

Removed passes still have to be taken out to avoid linker errors.
Removing missing backends
Remove missing passes.
Update to API changes in LLVM 3.1
Update README.md to include note on GHCi.
Update configure.ac to bump version number.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	base/llvm-base.cabal
LLVM 3.2 name change: TargetData to DataLayout

Adding a conditional #include for each version, although I think these
all should probably go.
In LLVM 3.2 a few functions removed their arguments.
Adding/removing a pass (same pass?)
Adding cflags to incorporate the C++ options.

This isn't really that clean, as it adds some noise (in the form of warnings)
to the build output. However, I don't know a better way to take the necessary
build flags from llvm-config (ie, -fno-rtti).
Adding LLVM 3.2 version numbers here and there.
Eliminating a dynamic cast in case of no rtti.

LLVM 3.2 may not be compiled with RTTI, which means we'll have trouble later
if we try to link this library with RTTI.
Merge remote-tracking branch 'scottgw/master'

Conflicts:
	base/cbits/extra.cpp