Refactor email, sms, and cite into actions within extendable action framework

While working on avalonmediasystem/avalon, @bkeese and I noticed bugs related to email, sms, cite actions from bookmarks.  We were also adding our own bulk bookmark actions but found we had to override a lot.  This PR refactors the email, sms, and cite actions and provides a pattern for adding and managing actions on an inheritable but per-controller basis.

A quick explanation of adding a new action is here: https://gist.github.com/cjcolvar/1d821fe502016aceea1b

Thanks @cbeer, @jkeck, and @mejackreed for feedback so far.
I wonder if you can use the controller's context instead of using it explicitly?