Changed the structure of the Bus so that it can be configured and built
using a fluent configuration interface

To support multiple types of IOC container and underlying messaging
systems the Bus had to be redesigned to be more configurable. My solution
to the problem was to define a static initialize method that takes a
single argument of type Action<IConfiguration> and returns an instance of
IBus. The action allows the Bus user to set configuration options such as
Consumer type and Container type. The Bus should also be easier to test
because a mock IConfiguration instance can be injected into the Bus.
Set default IOC container to structuremap