Eng 3153 liveschema

Core code for live schema change for 3.2.

There will be two more pull requests after this for the test app and for the human readable diff stuff.

Wait for Jenkins Blue™ to merge.