Recursively remove children items. Transactions FTW

Do NOT use dependent: destroy, cause we need to do
more than just removing the record on the DB (like
inventory tracking, etc)