Fix non-running deletion tests

Finishes #58993440, #50911281

Many of the tests in deleting.rb had accidentally been disabled. This
change re-enables the tests and removes the flaky "around" block which
had been causing them not to run.

The disabled tests were caused by a false-positive test for
relation[:dataset] which intended to check whether the association was a
virtual association rather than a real relationship. In practice, the
passed-in relationships are never virtual relationships, so the test was
unnecessary. This change removes the check entirely and instead relies
on the passed-in relationships being valid associations.

The affected tests (to do with recursive deletion) are now run
if-and-only-if any associated object ids are provided as arguments to
the shared_example, rather than being being bypassed by a complex around
block check as before.

Apps_controller and service_plans_controller both implement their own
deletion logic which differs (intentionally) from the shared deletion
behavior, and both have their own specs for this behavior in their
associated specs, so this change removes the inclusion of deleting.rb
from these specs

Note an alternate solution would be to lose all the metaprogrammed
tests, which doesn't seem like a bad idea. But while we're keeping
them, this ensures they actually run.