Listening for attribute changes

Using observedAttributes and attributeChangedCallback to listen and react to changes in custom element attributes.