Added explicitMode to options.
Added the ability to have an invalid state for validation.

Standard behavior is still default.
Setting retainInvalid to true will not change or override invalid
values and sets the invalid flag to true.