factor bootstrap behavior into boot.js
reimplement inserted|removed|attributeChanged(Callback) using MutationObserver (note: lifecycle callbacks on 'lifecycle' object instead of prototype no longer supported)