Move `Callbacks` to the `Ably::Modules` namespace
Move Conversions module into modules folder
Speed up Unit tests by not requiring an app to be set up
Better organisation of IdiomaticRubyWrapper & Conversions module
Use Ruby Enums for STATE & ACTION to ensure callbacks adhere to the spec

- New Enum class provides Enum like functionality to Ruby, although it’s far more flexible as integer indexes, symbols, strings and Enum classes are interchangeable
- Introduced a Protocol Message Bus to separate out public API state changes from message routing  between classes
- Added test coverage to the Callbacks & Protocol Message Bus classes / modules
- Unsupported Protocol Message types will be ignored but will not cause outright failures, thus ensuring future proof support for the library.  Warnings will be logged.
-