Bool8 => Bool32

The x86-64 ABI uses 32bits for booleans. Change boolean width (again) to
32bits
Support for LLVM IR string constants

These are the technically the same as i8 arrays but should be easier to
read. Add an new ArrayLikeConstant abstract class that both
ArrayConstant and StringConstant inherit from.
Add utf8-string native type

On *nix at least this will work with most functions originally intended
to deal with plain old ASCII C strings
Add DatumToNfiConstant

This takes an ast.Datum and target nfi.NativeType. If the conversation
make sense Some(IrConstant) is returned, otherwise None is returned
Support for referring to user defined types in IR

This is required to refer to the types in prelude.ll
Add NfiTypeToIrType

This is a simple function object to convert from nfi.NativeType to
llvmir.FirstClassType
Add support for function attributes

Initially it seemed that only function definitions could have
attributes. However, it appears that at least nounwind can also be
applied to declarations. Add generic attribute support and define Cold,
NoReturn and NoUnwind to start
Support unsigned ints as NFI types

This currently has no effect but will be required for the code generator
to know when to sign extend versus zero extend
Add -Xlint option to scalac and fix four warnings

-Xlint looks a lot more useful in Scala 2.11 but it catches some
weirdness even in 2.10