Tighten + modularize soft-delete; beef up some tests; subclass models from HealerRecord instead of AR