Changes to imageCropper, supports new mediafilesystem
Fixes: U4-4223 MVC based forms with SurfaceControllers don't work when rendered in Webforms mode.

This slightly changes how the routing works in the module, now we always send the request to the RenderRouteHandler, this will first process the logic for route hijacking, then it will determine if the request was found to be a WebForms template, if so then we'll return the webforms handler. This also now allows us to have POSTed values to SurfaceController's from forms that have been rendered in Webforms whilst maintaining all viewdata, tempdata and model state on postback even when rendering in webforms!
Updates the membership partial view templates to redirect to current page by default but allows this to be overridden. Creates a new RedirectToCurrentUmbracoUrl method which is slightly diff from RedirectToCurrentUmbracoPage since it doesn't care about the actual page item rendering, just the currently rendered URL which is useful if coming from a rewritten URL (which is what happens with public access rewrites)
updated web.config template to use new role provider.
Updated request after feedback
Fixes merge
fixes issue with legacy user.Password property and fixes comparison of sections
Ensures new user objects are approved by default.
Enxures user start node's are -1 by default when creating the model.
removes null check for LoginName, since it gets set to the name passed in if it is empty
fix legacy member wrapping new api and mixing email/login name
adds new interface for members' membership providers to implement so we know what aliases to store data against.
Updates the underlying UmbracoServiceMembershipProvider to deal with 'object' for provider key, this then lets us deal with either guid or int for the new membership provider, just like the old one does.
Fixes: U4-4215 Tree.config registeres tree inconsistently
completes: U4-4103 Publicize PluginManager for devs to use to create their own plugins
Cleans up some more of the old 'object' User Id references.
completes: U4-3282 Expose permission assignment methods at the service layer
Ensures we perform null checks in both GetAll and GetByQuery as we never want to include a null item in the resultant collection - which could happen depending on what the sub class repository is doing.

Fixes: U4-3145 Cache file periodically becomes corrupted: "Oops: this document is published but is not in the cache (internal error)"
updates more plugin manager defs
Updates the BulkInsertRecords method to optionally close the trans - shouldn't by default. Updates how permissions are handled in the new services and exposes another method, ensures it's all wrapped in trans and ensures that cache is cleared properly. Fixes: U4-4213 "Replace child node permissions" does not work if all permissions cleared