griffinjt
says
I created TGM Plugin Activation (tgmpluginactivation.com) around a year ago to fix this issue. I even gave a talk about it back in February at WordCamp Atlanta.
You’ve got no good excuse NOT to be putting CPTs, taxonomies, shortcodes and the like in a plugin. 
