Fix bug causing mutations while merging with nested models

Again, I'm not a huge fan of this solution to the merge + defaults problem, but
this will work until somone more clever than I figures out what to do or we
reevaluate the whole existance checking ordeal.
Don't mutate options in `add` or `set`
Force add true and remove false flags in `add`, merge optional