Bmc firmware update

I think it's preferred if we didn't have any requirements to ASM directly in the module.  The modules are intended to be "standalone", and any requirements on ASM are usually in the asm module through extending, or giving a provider as 'something_asm', or however.  We don't do it everywhere yet, but I think that's the best thing to do with the future in mind.
Take a look at https://github.com/dell-asm/asm/blob/master/lib/puppet/provider/transport/device_file.rb
and https://github.com/dell-asm/vmware-vcenter/blob/master/lib/puppet/provider/vcenter.rb and https://github.com/dell-asm/asm/blob/master/manifests/cluster/vcenter.pp for some examples of how we do this.
@gavin-scott may have some comments about this as well.