Add transition support

if .performTransition is specified, then .performShow is only
called if no content is currently showing and .performHide is
only called when not showing another content