Convert Compiler to struct type

There's now a Compiler struct type, with a
single Compile method. Internally, this
creates an instance of the existing compiler
type and calls its compile method. The compile
method is the old Compile method renamed.
cabi checkpoint
directDecode
more
almost
Update to provisional go/loader API

The updated go/loader API does not support specifying
the import path while creating packages from files. I
updated go/loader to allow this. Adonovan has concerns
about non-uniqueness of package names, so it it likely
to change again.
Update to latest go.tools APIs
tuples
llgo-dist: honour $GOBIN

Fixes #119
Update to latest go/types API
Adopt changes in go.tools

They accidently replace foo.MethodSet with NewMethodSet(foo)
Partial DWARF support

Debug descriptor code has been moved
from gollvm into llgo/debug. It may
move back as a sub-package of gollvm
when it matures.
Merge branch 'master' of https://github.com/avnik/llgo into avnik-master
Revert method receiver->signature change in MethodSet args

Also, use MethodSetCache.
Start implementing cgo support

Basics are there, but not fully implemented.
A simple program that refers to a package-local
function in C works.

Also, various fixes.

Fixes #73
Implement more cgo support

Fixes #72
Remove remaining C++ exception code
Suppress clang/llgo data layout link warnings

Clang and llgo are producing modules with slightly
different data layout strings, which causes warnings
to be generated. The actual layout is not materially
different, it's just (a) the order of the fields and
(b) llgo's layout containing extraneous fields that
causes the warning.

We now special case x86-64, and return the same layout
string as clang; additional architectures can be
added over time. There is no functional change other
than this: other architectures continue to work by
interrogating LLVM for known targets.
Use go.tools/go/importer

We now use the go.tools/go/importer package, and
not our own importer implementation. llgo-dist is
updated so that packages are built in dependency order.

Also, enable compilation of net. Compilation succeeds,
but linking does not. A new issue will be opened for
that, but is unlikely to be resolved ahead of integrating
the standard runtime.

Fixes #71
cmd/llgo-build: record and use CGO_LDFLAGS

We now write out <package>.ldflags for each
cgo-using package built with llgo-build. When
building a command, llgo-build will check to
see if there is an .ldflags file and add the
flags within to the final link flags.

With these changes, it is now possible to
build llgo with llgo: the actual resulting
binary does not work correctly, though.