Transition support for Raphael

Once again meant to be a long-lived pull request as I work on this. Please let me know if there's an error in approach and I can fix it.