Issue #2 - As the issue states, implemented dsl for defining protocols(responses/requests) compatibile with sia (e.g. length prefixed). Out-of-the-box dsl allows for using types defined in Serializer module in lib/serialization.rb, but it also allows for providing it (when defining *responses*) with custom deserialized which takes type name and block, which in turn takes one argument, namely a string with data to be deserialized. I will provide expressive example, as there stillawaits the sia protocol to be defined.
Issue #2 - Sia protocol definiton using newly supplied dsl for the sole purpose. Not every response is defined. Also fail response deserialization can be improved by assigning status a custom type, and creating custom deserializer which, instead of integer values, will return symbols.
Integrated with new definition of protocol. Also included EventMachine.epoll as some may use OSes which support that and benchmarking use A LOT connections, so using epoll would be a clear win.