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. 
I pulled the line out from xml.py, which defaulted on that kwarg. Maybe we lost it somewhere along the way?