Promote DateTime, String, and Number nullable types intelligently so we can perform binary/unary expressions with null values. Included corresponding unit tests.