Abstract add-on type classes
Merge branch '2.3/develop' of https://github.com/pyrocms/pyrocms into 2.3/develop