Don't retry the same pin twice
Do PIN unlocking before probing

This allows doing a meaningful probe on a PIN locked device, if a valid
PIN is configured.
Use pretty-printed JSON

This makes the output of --list-devices and --list-profiles more useful
on the commandline.
Allow passing the PIN on the commandline

This is useful for when running --unlock-pin or --probe from the
commandline, when you haven't actually configured the network config
file yet.
Link against libjson-c

Before, it linked against libjson, but that library was renamed to
libjson-c at version 0.11 (which wasn't released yet previously).
Let udiald_exitcode log the error to syslog

Before, almost every call to udiald_exitcode was preceded by a syslog
call. In most cases, this commit doesn't change anyhing. However in some
cases the error message in syslog is now improved, or an error is logged
where there wasn't one previously.
Log SIM errors with --probe

Previously, the errors were logged only when it also exited, which
didn't happen with --probe.
Store the failed pin in a separate uci section

Before, it was stored in the "wan" (or whatever was configured) section
of the network uci state, but (at least on the Fonera) this section is
cleared out on every connection attempt, which voided the point of
storing the failed pin. Now, a separate section in the network config
file is used to store the failed pin.