jsonrpc: port jsonrpc to use GVariant instead of JsonNode
By switching all of this API to use GVariant, we allow ourselves to be able to upgrade the connection to something more efficient than Json. The problem with Json is that it requires creating a great deal of small objects at parse time which can drastically fragment memory. For example, if we get 1000 auto-completion items from a worker, we would like to be able to keep all of those results in a single contiguous buffer and access them (and their string data) by pointing into the buffer. Doing so will allow us to make our completion engine much lighter weight, with the exception of GtkSourceView's requirement on GList+GObjects being pre-inflated. (Although we'll likely switch to our own completion system at some point in the future to work around all this and get other desired features).
Showing with 1663 additions and 1256 deletions