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", "{ \"hostname\": \"alfred\" }" },
  { "fe:f1:00:00:02:01", "OpenWRT-node\x0a" },
  { "fe:f1:00:00:03:01", "\x00\x01\xff" },

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": {
      "hostname": "alfred"
    },
    "fe:f1:00:00:02:01": "OpenWRT-node\n",
    "fe:f1:00:00:03:01": [
      0,
      1,
      255
    ]
  }

Values will be expressed as JSON objects, UTF-8 strings or byte arrays. First,
alfred tries to interprete the data as a JSON object. If this succeeds, it'll
set the value to the JSON object. If this fails, it'll try expressing the data
as an UTF-8 string. As a last resort, the data will be expressed as an byte
array.

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/