content views - ui - composite view promotion - help users with component views

When promoting a composite view to the "dev" environment,
the process basically takes the version of each of the
component views that is in "dev" and generates a new
composite view in "dev" from those components.  This
requires that all of the component views have already
been promoted to dev.

In order to simplify this process for the user, this
commit performs the following:

- if the user adds a composite view to a changeset, automatically
  add any component views to the changeset that have neither
  already been promoted to the next environment nor have been
  added to the changeset.  This will only be done for those
  component views that the user has permission to promote.
  The user will be informed via a 'message' notice of
  and component views that were added to the changeset for them.

- if the user later removes one of those component views, when
  they attempt to promote the changeset, generate an error
  to inform them of the need to also promote the component
  view
content view - refactor add_content_view logic in controller to model

The controller has logic to when adding a content view to a
changeset, to also add the component views.  Refactored this
logic out of the controller and to the model so that it can
be leveraged by the API later.
content views - fix changeset.add_content_view test
content views - fix the permission checked when destroying a definition
content views - add some spec tests for content view & definition controllers

This commit contains several tests for the above UI controllers.
There will be more tests introduced; however, didn't want to wait
till all are finished before commiting.
Merge pull request #1680 from bbuckingham/fork_content_view_tests

TDD - content views - add some tests for view and definition controllers
Merge pull request #1659 from bbuckingham/fork_composite_views

content views - ui - composite view promotion - help users with component views