add new JSON classes

Signed-off-by: Takashiro <takashiro@qq.com>
rename symbols to match Qt Style

Signed-off-by: Takashiro <takashiro@qq.com>
coding style

Signed-off-by: Takashiro <takashiro@qq.com>
apply new JSON classes to QSanProtocol::Packet::toUtf8()

Signed-off-by: Takashiro <takashiro@qq.com>
two new json utility functions

Signed-off-by: Takashiro <takashiro@qq.com>
upgrade Packet::parse

Signed-off-by: Takashiro <takashiro@qq.com>
new member function toQVariant() for QSanProtocol::Countdown

Signed-off-by: Takashiro <takashiro@qq.com>
upgrade Countdown::parse

Signed-off-by: Takashiro <takashiro@qq.com>
remove toJsonValue() from Countdown

Signed-off-by: Takashiro <takashiro@qq.com>
new Packet::setMessageBody

Signed-off-by: Takashiro <takashiro@qq.com>
rewrite ServerPlayer::notify

Signed-off-by: Takashiro <takashiro@qq.com>
rewrite Client::notifyServer

Signed-off-by: Takashiro <takashiro@qq.com>
rewrite Client::requestServer

Signed-off-by: Takashiro <takashiro@qq.com>
rewrite client::replyToServer

Signed-off-by: Takashiro <takashiro@qq.com>
rewrite Server::broadcast

Signed-off-by: Takashiro <takashiro@qq.com>
rewrite Room::doNotify

Signed-off-by: Takashiro <takashiro@qq.com>
rewrite Room::doBroadcastNotify

Signed-off-by: Takashiro <takashiro@qq.com>
fix my stupid typo - -#

Signed-off-by: Takashiro <takashiro@qq.com>
rewrite Room::doRequest

Signed-off-by: Takashiro <takashiro@qq.com>
new callback hashmap

Signed-off-by: Takashiro <takashiro@qq.com>