Do not allow private domains that overlap with shared domains

This PR addresses issue stated in https://github.com/cloudfoundry/cloud_controller_ng/issues/218 and I have added code as per @MarkKropf comments to stop users from adding private domains that are subsets of shared domains and avoid failures in the domain validation logic when an API server is rebooted.
I have also refactored one example from the shared examples to make the separation for the shared domain vs private domain tests to make sure they are run correctly.
Please merge this request as this is important in production environments where there is no check that stops users from adding a private domain like "b.com" when a shared domain like "a.b.com" exists, causing eventual issues in validating that shared domain during reboot.