go/types: cleanup of assignment checks

Also:
- cleaner handling of constants w/ unknown value
- removed several TODOs

R=adonovan
CC=golang-dev
https://codereview.appspot.com/7473043
go/types: implement constant string(x) conversions

Fixes issue 4982.

R=adonovan, r
CC=golang-dev
https://codereview.appspot.com/7537043