Additional branding logging and updates to folder operations

* Additional logging throughout the branding project (using recent improvements).

Other changes:
* AddNewThemeOptionToWebImplementation() shouldn't need the files to exist on the local disk, and all it needs is the name (not path). (There is a separate function that uploads and does need to check for files).
* SetThemeToWebImplementation() only set MasterUrl; applying a theme in the UI sets both MasterUrl and CusomtMasterUrl, so this changed behaviour to match. (Can still manually set MP back if desired).
* ResolveSubFolder() returned the folder if found, but if not found it was returning the parent; changed to return null if not found.
* Consolidate some folder operations into EnsureFolder(), which work on both web site and folder/subfolder. Clarify these operate on a single child folder name, not a path or URL. (The previous version of CreateFolder(), which uses folder name, actually called DoesFolderExists(), which uses server relative URL -- bit this would only work at the server root for first level folders.)
* Also added FolderExists(), which does a similar thing.
* Added GetAllWebUrls(), which is analogous to the old SPSIte.AllWebs, to get a list of all children to cycle through.