Add handling of None parameters

- default validation passes for none so that optional parameters
can be omitted when not needed.
- None is not converted to a type now but passed through so
that functions can detect the absence of an argument