Update App Parameters

## Overview

The current API only allows users to update the number of task instances.  In order to change the memory requirements, for example, the task must be destroyed and re-created.  This change allows updating an application in a more complete and RESTful manner, e.g.

    http PUT localhost:8080/v2/apps/sleep cmd='sleep 20' cpus=0.3 mem=9 instances=3

## Limitations

Currently running tasks are not pre-emptively restarted with the updated paramters.  Therefore, the new resource allocations, command, uris, and constraints only apply to new instances.

To address this, we may want to provide some restart strategies for users to choose from.  Some useful options might be:

- *Lazy* (current behavior)
- *Eager* (stop currently running instances, queue `N` new ones)
- *Parameterized rolling restart*