shell: genericize _updateAttributesWithDefaults
shell: genericize _updateAttributesWithDefaults

_updateAttributesWithDefaults now updates all default attributes. A
shell's attribute will be updated to the current default value under the
following circumstances:
1) the attribute is undefined
2) the attribute is the same as the most recent default value
3) the attribute is an empty string and the attribute is not allowed to
   be empty

athenalabs/acorn-player