Made insert_default so that it supplements the original data structure
with any new values added during validation, rather than replacing
completely

This is a fix so that the existing behaviour of insert_default is
maintained (ie. anything that is already in the object is left as it
was), but still allowing us to use a stringified hash internally and not
modifyingt the default proc of the data object.