Refactor compute API's delete to properly do local soft_deletes

Right now, if you try to soft_delete something that is on a downed
host, the _local_delete code will actually hard-delete it, which
isn't what you would expect. The compute init code already handles
the case of soft-deleted instances while it was down, so we just
need to alter the frontend behavior.

Note that tests for this are added in the next patch, which was
written first and because there would be a ton of conflicts
generated by inserting them here.

Change-Id: I09f33bbcd7799b2bc1289b6100b291a7e6b26d9c
Merge "Refactor compute API's delete to properly do local soft_deletes"