JSON responses

This significantly changes the way the server and clients will interact, so I'm interested in what everyone else thinks, before we consider a merge.
@Max00355, @jBrown91 - how would you guys feel about JSON going to and from the server? It makes it much easier to communicate, since most languages have easy ways to read and write JSON to sockets.

This implements the suggestions in #5, and more so the structure from there, meaning this:
```python
{
    "success": bool,
    "message": None, # incase of errors,
    "payload": { # What the command returns (None if errors)
        "this": "that",
        "foo": "bar"
    }
}
```

So see what you guys think, there are still things which could be improved, but I think it's a nice change, and makes it easier for clients to communicate with the server.
If it's taken well, I'll probably write up some clean protocol documentation so developers can get into bloocoins easily.