pkg/runtime: Various fixes to pass type-checking
llgo/types: Remove llgo/types (use go/types)
pkg/runtime: update to match Go 1.1 runtime types

minux is also looking at this, but it was necessary
for me to make these changes to test the move to
go/types. I haven't been meticulous, so minux's
changes should be compared against when ready.
cmd/llgo: Use go/types, update TypeMap to Go 1.1 runtime types

I've copied some helper functions from go/types (predicates.go and
part of types.go). Much of the changes to typemap.go (formerly
llvmtypes.go) will overlap with minux's pending changes.
llgo: Minor changes to use go/types

Disabling function literals for now. Will come back to them when
the low hanging fruit is out of the way.
llgo: Update *LLVMValue to use go/types

Got rid of ConstValue; go/types folds constant expressions
and evaluates their types, so we can convert directly to
LLVM constants. Introduced a simpler "NewConstValue" which
takes a constant value and type, and returns a new *LLVMValue.

Also got rid of NilValue. We can check if LLVM values are
constant nulls instead.

I intend to get rid of TypeValue as well; when this is done,
LLVMValue can be renamed to Value, and the interface can be
got rid of.
llgo: More changes to use go/types

- No longer processing *ast.BasicLit. Instead, check if go/types
  evaluated each ast.Expr as a constant expression, and if so
  call NewConstValue.

- Various ugly "convertUntyped" calls strewn around the place.
  These are redundant, and IMHO should be provided by go/types
  via Context.Expr. Have brought it up on golang-dev. If nothing
  comes of that discussion, I'll write a separate AST walker that
  updates the types.
llgo: fix signatures of llvm.mem{cpy,set} intrinsics
llgo: Fixes for type-mapping
llgo: changes due to *ast.Object removal from go/types
llgo: More fixes

Note the change in testdata/slices/sliceexpr.go: go/types expects
at least one parameter for print/println, whereas gc allows zero.
I think this ought to be changed in go/types, as it will error on
code that passes gc.
cmd/llgo: Change switch/scope test to not have duplicate cases

go/types is more stringent than gc, disallowing duplicate cases
in switch statements. Seems fair (gc should probably change in
this case), so I've updated the test case.
llgo: Fix method expressions
llgo: Make size of int dependent on target architecture
llgo: Implement interface-to-value comparisons
llgo: Fix inc/dec for non-integer types

Fixes required in go/types to get TestOperators to pass,
to set additional type hints.
llgo: Fix variadic functions

gri fixed go/types. It's a little weird, but it works.
The function's Signature has the variadic parameter's type as
the element T, while the parameter object's type is []T.
cmd/llgo: Add missing unit test file
llgo: More fixes to get llgo-dist to succeed
llgo: Get function literals/closures working once more