Split XML serialization and validation contracts.

@gradyward 
@wedaly 

Covers: 
* XML serialization changes
* Validation tweak (minor)
* Studio Mixin update
* Buncha tests

Continues to support reading in full XML configurations (for workbench, etc) but also allows serialization and a more granular level. 

Mixin now adheres to a JSON update contract rather than purely XML. 
Do we need separate user-facing strings for this?  Or could we return a generic message (which will be translated only once) and log more specific messages?  (probably as warnings, since we can't control what the client sends us).