Use typechecker to recognise untyped constant expressions.

This lets us more accurately suppress type omission suggestions,
and also has the nice effect of throwing away some clumsy hacks.

This helps address #61, but doesn't completely fix it.