Email registration backends and refactor of backend plugins to support it

Allows RegistrationProfile to be defined on the class based view so different backends can be provided more easily whilst maintaining compatibility with existing views and urls.

Satisfies trello card: https://trello.com/c/8jEPugYa
Jenkins: http://jenkins.rethought-solutions.com/job/registration-email/