Added support for a "Validate" method to be added to IAmImmutable implementations, that will be called after "With" updates
Added support for a "Validate" method to be added to IAmImmutable implementations, that will be called after "With" updates

This may be necessary because the "With" updates do not call the
constructor when new instances are created since there is insufficient
meta data available at runtime to reliably identify which constructor to
call (and what arguments to pass, in what order) - so any validation
that the constructor may apply is bypassed when individual properties
are updated via "With".

ProductiveRage/Bridge.Immutable,ProductiveRage/Bridge.Immutable