Generate debug metadata using DIBuilder

- One DIBuilder per CU
- Pick arbitrary file for synthetic functions
  without location (e.g. ".import"), so there
  are no made up CUs.
Compute sizes and offsets ourselves with padding for embedded structures

The implementation is a tweaked version of the StdSizes implementation which
pads structures to align them. This is similar to what we were previously doing
in llvmTypeMap.Sizeof, but since StdSizes.Offsetsof calls StdSizes.Sizeof
we were getting it wrong when a struct which required padding was embedded
in another struct.
Deduplicate init entries with different priorities by choosing the entry with the highest priority

This can happen in certain obscure cases -- see the comment for more info.
Fix gllgo, enable -g
Merge pull request #149 from axw/libgo-dibuilder

Generate debug metadata using DIBuilder
Merge pull request #161 from pcc/libgo-p1

Compute sizes and offsets ourselves with padding for embedded structures
Merge pull request #162 from pcc/libgo-p2

Deduplicate init entries with different priorities by choosing the entry...
Introduce frame.llvmvalue and port all clients which do not use govalue to it
Modify frame.slice to take llvm.Values instead of govalues
Avoid loading large structures when we are only going to use them to create an interface

This may look like an optimization, but it helps us avoid assertion failures
in the LLVM backend resulting from loads of large structures.
Modify interfaceMethod to take llvm.Values instead of govalues

Also, use the supplied interface type instead of the receiver of the
interface method. This avoids problems with embedded interfaces, and fixes
11 libgo tests.