Application::delete() should retrieve the applications versions immediately prior to deleting to ensure that an application object created prior to its child versions doesn't leave orphaned versions. Add unit test for Application::delete() to test for the offending behavior.