(Refactor) Remove unused type vars in Funk.Names

Funk.Names exported 3 types: "UnresolvedName a" "ResolvedName a"
and "RawName", where RawName was simply an alias for
"UnresolvedName ()". The "a" type parameter is only ever specified
as () everywhere any of these classes are used and I don't remember
what it was for (And didn't write any enlightening comments
either). Possibly I got confused with the type parameter that the
AST types take.

Anyway, this commit removes the type parameter from UnresolvedName
and ResolvedName. This makes RawName simply a synonym for
UnresolvedName so I removed RawName as well.

This is a pure refactor which shouldn't cause any change in
functionality.
Upgrade base module dependency from 4.6 to 4.8

Upgraded my Haskell Platform from 2013.2.0.0 to 2014.2.0.0, which
involved upgrading GHC from 4.6 to 4.8. Changed module dependencies
to reflect that the "base" module (Prelude, etc.) required is now
4.8.x. There's no reason why 4.6 shouldn't continue to work, but I
decided to make 4.8 a requirement, since I will no longer be
testing with 4.6.
Add instructions for building LLVM to README.

A couple of extra flags are needed when building llvm-general with
GHC 4.8 to avoid some linking issues (manifesting as a crash with
GHCi.) The upside is that, with these flags, it is possible to use
LLVM with GHCi. (With GHC 4.6, programs like Funk that use
llvm-general would work fine if compiled to a stand-alone
executable but would crash if you attempted to load them into
GHCi.)