DV2 DetectionBase knows more about allocation statuses

This PR was spawned from comments in #345.  It contains a chunk of refactoring, followed by a few feature adds:

- give a specific error message when an allocation is archived
- notice purged or invalid allocation links and continue seamlessly
- add a bit more instrumentation
Was the `not -l $instance_output` check intentionally removed?  I don't think we should be creating the `.tar.gz` when the old data when `$instance_output` is a symlink.