Simple Crypto defaulting to AES-128-16
Support any data type for encryption simply with msgpack
Token documentation
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.
-
Use generic Logger for warnings, errors and debug messages
Use a MessageDispatcher class to handle all incoming ProtocolMessages
Rename Callback module to EventEmitter - similar to our other libraries & Node.js
Use MsgPack for communication over REST with pending tests to be completed once MsgPack supported by Realtime
Make Enum class Enumerable
Allow an Enum to use another Enum for the values
Improve ProtocolMessage class
Refactor Realtime system to use In/Out Message Dispatchers supporting ACK callbacks
Documentation tidy up - various small syntax fixes
More accurate classification of tests if not actually Unit tests
Support NACK & correctly use #count property of ProtocolMessage for forward NACK/ACK