Reimplement channels (excluding select)

Full support for make(chan T), close,
chansend, chanrecv.
Update go.tools
Fix tupleType

go/types NewStruct now checks for duplicate fields
Reimplement select statements