Don’t override already-defined default values when freezing

- Freezing a Virtus object no longer overwrites all existing default attribute values.
- Add `Attribute#defined?` to cleanup `AttributeSet#skip_default?` a bit.
- Make `AttributeSet#set_default_attributes!` behavior respect its documentation, which implied its only difference from `set_default_attributes` was that it additionally set lazy attributes, which was not entirely true since it also set non-lazy (and lazy) attributes that had already been defined.