Deleting entities with attached shipments

* adds safeguards when deleting taxa, geo entities and trade codes with shipments attached
* adds a mixin that provides can_be_deleted? method for all AR objects
* adds a dependent_objects method that returns names of dependants that are blocking a particular resource from being deleted; so that we can provide users with feedback