Fixed a bug in base.fire where it would not make the event name lower case beforehand.
Fixed a bug in base where it would fire the on and after events for an attribute change when the attribute value was invalid (and therefore did not change.)