Explicitly handle find_by_name in Host::Managed

This is because Host.find_by_name redirects to Host::Managed instead of
Host::Base, which means we can't find Hosts of other STI types. This
explicitly calls Host::Base.find_by_name so that we can find any type of Host
Submit the host type along with the edit form
Set the host type in #update, and set it back if the update fails