Support multiple driver-types and add flexible options hash

This commit makes it possible to define the IPMI driver that should be used with the underlying tools (i.e lan 1.5 or lan 2.0)

It also adds an options hash that maintain backwards compatibility with the positional arguments, but also allows provider, debug, and driver to be provided via the hash as named arguments.