Add support for java.time types, tidy up ScalarTypes