frontend support for Cast

I'm not fond of how the types are handled, by being always considered
nullable. We may need to have different ways to build types, one for
table descriptions and one for expression/views.