fix(controller): allow users to override `cmd` process types
fix(controller): update App.structure field correctly after scaling

While the scaling logic is correct, we were naively using the requested
scaling values to update the App.structure JSON field, rather than the
actual containers in existence after scaling. This was cosmetic only,
but is fixed by a SQL aggregate query and python dict comprehension.
Includes regression unit tests.
Merge pull request #2672 from mboersma/fix-app-structure-save

fix(controller): update App.structure field correctly after scaling
feat(controller): introduce dockerignore

This file prevents the python virtual environment as well as extra
droppings from testing from being sent into docker's builder.
fix(controller): revert to `start proctype` for buildpack images
fix(builder): send nil to controller, not 'False'
Merge pull request #2695 from bacongobbler/controller-dockerignore

feat(controller): introduce dockerignore
fix(builder): parse release info correctly

Release info was being parsed improperly. We should only fall back to
the Procfile if we cannot find any default process types from the
release info.
Merge pull request #2673 from bacongobbler/no-bash-wrapping

fix(controller): revert to `start proctype` for buildpack images
Merge pull request #2669 from bacongobbler/allow-cmd-override

fix(controller): allow users to override `cmd` process types