Clean up app creation/deletion code & model.

Added support for a human readable label for apps. Generate the machine name from it if not present. Check for name uniqueness within a single organization.
Deletion of apps now working regardless of whether the CF app failed to instantiate or not.