alfred: Output retrieved data as JSON

This patch changes the output format of `alfred -r`. Previously, its
output would resemble this:

  { "fe:f1:00:00:01:01", "OpenWRT-node-1\x0a" },
  { "fe:f1:00:00:02:01", "\x00\x01\x02" },

That's something that looks a bit like JSON but it's not. It's an
undocumented custom format for which no parser exist.

With this patch the format is changed to JSON. The same data will look
like this:

  {
    "fe:f1:00:00:01:01": "OpenWRT-node-1\x0a",
    "fe:f1:00:00:02:01": [
      0,
      1,
      2
    ]
  }

This is an JSON object containing a key-value pair for each node with
the nodes' IDs being keys and the corresponding data being the values.
Values are expressed as UTF-8 strings, except when it's not possible to
do so. In that case the value will be encoded as an array of bytes
(expressed as integers from the range 0 to 255).

JSON encoding is handled by jansson, a C library for working with JSON
objects[1], so this patch also adds a dependency on jansson.

[1]: http://www.digip.org/jansson/