Added .gitignore.
Initial Xcode project.
Added plist.[ch] files and configured target to build.
Fixed pass-by-reference inconsistency in asr_send().
Updated Xcode project’s source files after upstream merge.
Commented out call to userpref_remove_device_record pending update to libimobiledevice.
Fixed implicit function declaration warnings.
Disabled call to userpref_remove_device_record() until merged to master in libimobiledevice.
Fixed misuse of free() instead of plist_free().
Fall back to ‘RestoreKernelCaches’ if ‘KernelCachesByTarget’ not in Restore.plist.
Added man page to target.
Return ‘DeviceTree’ instead of ‘RestoreDeviceTree’ from get_component_name().

Returning ‘RestoreDeviceTree’ is inconsistent with other component names, and the caller
apparently handles the need for it. Also, the API doc for plist_dictionary_insert_item states
that it asserts if the key to be inserted already exists. if plist_dictionary_insert_item actually
does assert as described, the caller of get_component_name triggers that assertion if
‘RestoreDeviceTree’ is returned.
Added test for limera1n compatibility before attempting to inject it.
Added libirecovery submodule.
Added libirecovery project to idevicerestore Xcode project.
Ignore error when sending bootx command.

Libusb returns an UNKNOWN error on OSX when bootx is sent and the device disappears.
Added libimobiledevice submodule.
Added libzip submodule. Added deps to build phases and removed linker flags.
Prefer the WTF file in the restore IPSW, fallback to downloading the WTF IPSW.
Use @rpath for libzip install name.