Clean has_no_providers, provider utils move

This is a twofold fix for existing problems related to the addition and removal of providers in the UI.

First, `clear_providers` will use rails cascading deletes to destroy all providers, vms/templates, and related items. This is slower than just truncating a db table, but much cleaner.

Second, `utils.providers` now does all the legwork to see if a provider has already been added before trying to add it (can be forced to try anyway with `check_existing=False`).