Destroy default content view on cascade when deleting environment

Also validate the default content_view explicitly. Here is what happened
without this changes:

1. Create environment (default content view and content_view_version
was crated)
2. Delete the environment (`content_view` stayed there because
`:dependent=> :destroy` was missing)
3. When creating an environment with the same name, the content_view
was not created, because another content view with the same name
already existed. However, because the content_view was being saved as
part of saving content_view_version, the exception was not thrown (and
the content_view_version was saved successfully without association to
any content_view)
4. When promoting some time after this incident (that happened
unnoticed), "nil pointer exception" occurred while promoting, because
the default content view was not there.