Update modal.js

Allow additional positioning and/or animation which can't be done until element is visible by triggering a new event called 'showing'.  If the 'show' trigger is used then a delay is seen between the two animations; this allows them to be seemless.