Requests

To test:
 * Uncomment Simulator section in main.cpp
 * Comment Local File section in main.cpp
 * Run Simulator `npm start` in uCtrlSimulator directory
 * Start program and you are supposed to see the same platforms (as data.json loaded locally).

In the simulator, I'm simply loading `data.json` and wrapping the content in a protocol message. For now, only the GetPlatform* messages are supported, we will eventually expend the protocol when needed.

I also broke the JsonSerializable interface in 2: JsonReadable and JsonWritable.

MessageTypes are defined in an enum class file.
Every request is supposed to use Request interface.
Every response is supposed to use Response interface.