implement type printing for struct types

Give ASTContext a SourceManager. Use the location of the 'struct'
instead of the '{' as the start location of a struct (a bug found by the
tests this change adds).

Struct types are printed as "<struct at filename.go:10:9>", which isn't
ideal but will do for now.