Update detected buildpack on diego staging path

Use buildpack_key form response message to update buildpack information
in the app.

[#69196650]
Add /v2/apps/:guid/env and bump CC version

-Endpoint exposes normal env vars and VCAP services
-Bump CC version to 2.4.0
-Update API docs to reflect changes
Merge pull request #233 from sykesm/diego-staged-event

Update detected buildpack on diego staging path
Hide service binding creds based on role

-Only shows for SpaceDeveloper or Admin role
-Add ability for other models to serialize the
same way with :redact key

[finishes #62436754]
CC now adds all env vars to to the diego.desire.app message

* Refactor AppObserver to use DiegoClient for staging rather than
  DiegoStagerTask

Signed-off-by: Ted Young <tyoung@pivotallabs.com>
Redact creds for service_instances based on role

-Also remove unecessary 'plugin' line from service_bindings
Fix typo

Signed-off-by: Ted Young <tyoung@pivotallabs.com>
Refactored restage test to be transactional

Signed-off-by: Chris Adams <cadams@pivotallabs.com>
Added ModelManager to handle cleaning up models

- For some reason, transactional mode wasn't correctly cleaning up the db

Signed-off-by: Chris Adams <cadams@pivotallabs.com>
Destroying Stacks instead of deleting them

- Destroy deletes associated dependencies too (to ensure constraint
  compliance)

Signed-off-by: Chris Adams <cadams@pivotallabs.com>
Added buildpack test db cleanup

- Changed tests for transactional behavior to actually test the behavior, not
  the implementation

[#71248484]
Rake task to simulate Jenkins test runs
Reduce the amount of non-transactional tests

Non-transactional tests recreate the DB which is a disaster for perf and
doesn't seem to work quite right in MySQL when running in parallel. Not sure
what could be going on since each DB is theoretically isolated??? Anyway it
likes to flake out, which is of course bad. And it occasionally doesn't quite
seem to drop and recreate every table, and there's no protection since our
transactions use savepoints, so rollbacks are unpredictable.

Hopefully this change will reduce the amount of leakage and thus flakiness.

This change is the low hanging fruit. We should look to remove
`non_transactional` entirely. For that, we have [#71339198].

[#71248484]

Signed-off-by: Chris Adams <cadams@pivotallabs.com>
Model and spec for Service Usage Events

[#66608588]
Repository for Service Usage Event find / create

[#66608588]
Fixing a error messages in App matcher
Create a service usage event when managed service instance is created.

[#66608588]
Controller / action for Service Usage Event enumerate

[#66608588]
Oracle index names cannot be greater than 30 chars

[#66608588]
Model and Repo support User Provided Service Instance

[#71195632]