Create a 'STAGED' app usage event

App usage events are currently created every time the desired state of
an application goes from STARTED to STOPPED or when the desired instance
count or memory allocation of a STARTED app changes. A requirement has
been raised to add buildpack information to these events but the
buildpack data is not always known at the time the desired state of an
app transitions to STARTED.

Since there are hard requirements to have events associated with the
existing STARTED and STOPPED states created without introducing windows
where events are duplicated or recorded out of order and to ensure that
events are immutable, the only viable alternative left was to introduce
a new state called STAGED that represents a started app that has
completed staging.

This change records app usage events containing buildpack information
when staging completes.