Fixes: U4-4104 Using strongly typed Html.Action<T> with a PluginController causes exception
re-publicizes member services, fixes: U4-4102 Un-obsolete ContentService.Publish
completes: U4-3996 Fix EditUser to use the membership provider properly, U4-3997 Fix EditMember to use the membership provider properly
obsoletes old providers, creates new membership role provider stub
Fixes user membership providers to throw exceptions on duplicate emails when the provider is configured to not allow duplicates.
publicizes user stuff, changes the IUser.Id to an int - no need for it to be an object and casted everywhere. Updates the login logic to perform the mapping logic for custom membership providers with an extension method.
Fixes: U4-4108 The backoffice should not be accessible when the app is not configured, it should redirect to the installer and U4-4106 Set the new membership providers to be shipped as default.
Starts wrapping MemberTypeService from the legacy MemberType object. Changes the User.Id to an int - no more casting.  Changes CreateMember to CreateMemberWithIdentity for consistency. Adds raiseEvent params to the create/save methods. Updates the MemberTypeService to have consistent naming conventions. Starts wrapping more of the MemberService from the legacy Member object.
Starts wrapping MemberTypeService from the legacy MemberType object. Changes the User.Id to an int - no more casting.  Changes CreateMember to CreateMemberWithIdentity for consistency. Adds raiseEvent params to the create/save methods. Updates the MemberTypeService to have consistent naming conventions. Starts wrapping more of the MemberService from the legacy Member object.
adds unit tests for member type can view/can edit properties
MemberType fully wraps new MemberTypeService
Wraps the MemberService from the legacy Member object
Finishes wrapping the member service and fixes a few bugs - ensures the RepositoryBase doesn't keep enumerating when getting all
Fixes some underlying type conversions, fixes more of the member type wrapping, updates contenttypecontrolnew to work with member types properly, ensures the property type cache is cleared when member types change.
Fixes more naming conventions with CreateMemberWithIdentity, fixes memberTasks to ensure the name is set, fixes new membership providers which had the name/email call reversed. Updates the cache refresher event handler to listen to MemberService events instead of the old legacy API events.
Allows forcing pass change with new provider, updates conventions to not allow editing of question/answer - unfortunately cannot make the other ones readonly because noEdit data type is the wrong clr type.
Changes how IProfile works which is now just exposed by the IUser instead of implemented, this cleans up the Id situation.
Ensures that Save() is called wherever member data is saved
More Save()'s missing and removes the extra calls to XmlGenerate - should save some processing time.
Fixes User Id issues with HasIdentity, wraps legacy UserType to the new service, fixes the uninstalling db schema to not throw exceptions and clog up the unit test log.