fixed overlay bug and added test to verify

there's a bug in the overlay/expand process.  If an expansion of a class brings in new Options, but one of those options already exists in the namespace, that pre-existing option will be overwritten with the defaults from the expanded class.  That's true, even when that overwitten option has already been through the overlay process.  In otherwords, the expansion resets the option back to its default value, cancelling any values that might have come in from the commandline, ini file, etc.  

The solution is to look at what is brought in by an expansion of a class.  If the Option have "already been seen", mark that option as "new" so that the overlay process can restore the value.