This should set the full state of an `AppDefintion` like `PUT` suggests, but I don't think it should affect running Tasks unless the `instances` value changes. Even then, it should start or stop only enough Tasks to reach the new `instances` value.

Since Tasks are now versioned, it should be up to the user to kill Tasks if to update to the latest AppDefinition. Imposing this restart-the-world makes this `PUT` endpoint very inflexible.