A sketch of a new design for expressing changes.
Start writing some tests.
Merge branch 'determine-volume-changes-272' into statechange-refactor-361

Conflicts:
	flocker/node/_deploy.py
	flocker/node/_model.py
	flocker/node/test/test_deploy.py
Sequentially and InParallel work.
StartApplication and StopApplication.
Move tests to better location.
Remaining (skeletal) IStateChange classes.
Change change_node_state appropriately.
Fix some more tests.
Merge remote-tracking branch 'refs/remotes/origin/master' into statechange-refactor-361
Link to more details about what handoff means.
Move proxy logic into SetProxies.
Update tests to new expected output from calculate_necessary_state_changes.
Delete some no longer necessary code.
Update calculate_necessary_state_changes to new logic.
Some minor cleanups.
Lint fixes.
Minor fixes to use newly public attributes.
Address review comment: Make tests less obscure.
Address review comment: Test what we claim to be testing.