Implement cast for basic myrial types

int(x) => LONG_TYPE
float(x) => DOUBLE_TYPE
string(x) => STRING_TYPE
boolean(x) => BOOLEAN_TYPE

Builds on #217.
Not a dumb question.  The basic problem is that catalog/schema information isn't plumbed through datalog.  So, that function is called with None as its arguments.  See #220.