Refactor pair record handling to use new usbmuxd pair record interface

This refactoring is mandatory as libimobiledevice should not interact with
the pair record configuration directory which is owned by the usbmuxd user.

This change also adds compatibility for the native usbmuxd and thus pair
records saved by iTunes.
lockdown: Remove obsolete debug output
userpref: Use correct import helper for keys and certs
lockdown: Fix wrong pointer dereference of pair_record plist
userpref: Fix invalid plist_free() which caused pair process to fail
userpref: Remove obsolete dict item check as plist_dict_set_item() takes care
lockdown: Make sure to set SystemBUID in generated pair records
lockdown: Plug memory leak due to missing free of public_key
lockdown: Make sure failed pairing validation works with correct error code
idevice: Use correct import helper for keys and certs
userpref: fix mixed up root/host certificate storage
tools: fix build of idevicepair with indirect linking
userpref: merge pair_record_generate_from_device_public_key() into pair_record_generate_keys_and_certs()
userpref: fix GnuTLS key generation
idevice: Plug memory leak by freeing pair_record
idevice: Fix misleading warning in GnuTLS SSL handshake
lockdown: Read HostID again after pairing to fix first pair workflow
lockdown: Move HostID generation closer to code setting it in pair record
userpref: Try to output similar error messages in GnuTLS and OpenSSL logic
idevice: Use more common "ERROR:" syntax for error messages