Future publish refactor

Refactor changes for  #260:

* created new interface `IScheduler`
* created a default Scheduler implementation, getting dependent components using dependency injection
* add a property `IScheduler Scheduler { get; }` to the `IBus` interface
* changed the implementation using `IAdvancedBus` instead of `IBus`, this will also provide much more flexibility for future changes
* registered the component `IScheduler` on the container
* changed the `RabbitBusExtentions` to be a simple proxy class, using directly the `bus.Scheduler` property that already contains the implementation.
* removed the duplicated `BusExtensions` leaving just the `RabbitBusExtensions` class. If you want we can rename in `BusExtensions` if you prefer.
It's not completely necessary to add this property to IBus. bus.Advanced.Container.Resolve<IScheduler>() would also work.