client: also add DeviceID to main dictionary for Attached message
main: make sure the non-privileged user has proper access to the config dir
client: add send_plist_pkt helper to remove code duplication
client: implemented "ListDevices" command
fix compilation when compiling without plist support
client: return proper error packet on client version mismatch
make libplist/protov1 support mandatory
add support for reading and writing config and pair record files
client: implemented ReadBUID, ReadPairRecord, SavePairRecord, and DeletePairRecord commonds
enlarge input+output buffer sizes.
increase number of open file descriptors

When a large number of devices are used, the number of open file descriptors
can reach the default system limit. Upon startup we now raise it to
a much higher value to give more 'space'.
preflight: replace idevice_event_* with thread safe implementation

idevice_event_subscribe() calls usbmuxd_subscribe() which will
start a thread waiting for device add/remove events. But this
implementation is not able to handle more than one "subscription".
However the preflight worker will start a thread for _each_ device
resulting in a really messed up situation if more than one device
is attached at the same time. This fix will use usbmuxd's internal
device_remove function calling a preflight callback to make this
implementation thread safe.
client: plug several memory leaks