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.
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