Enum support improvement

Allow enum null value in BeanMapper.
Fix BeanMapperFactory to not interfere with built-in argument types.
New EnumArgument argument type built-in which maps any Enum value as varchar
I needed this public to allow BeanMapperFactory to exclude the built-in types as it's in a different package. I suppose that could also be moved, but this seemed the least disruptive change. The constructor is package protected so the BuiltInArgumentFactory can't be misused