Partial fix for issue 1451: admin framework constraint and dependency support.
This change provides a client-side framework for enforcing arbitrary constraints between managed objects and their properties. This framework enables us to (not exhaustive):
1) support referential integrity between managed objects (required by issue 1449)
2) support dependencies between properties (e.g. if A is true then B is mandatory). This is useful for optional features like SSL configuration
3) support constraints between properties (e.g. integer property A must always be less than integer property B)
A subsequent change will provide server-side support.