simplify mobiledevice.c -> rename to mobiledevice.m and use NSSttring instead of CFString and ARC

saves about 100 lines of code and makes string deallocation a bit more safe 
Because i think "(nil)" is not a "standard" way to print signal an error (especially if it is printed out to stdout). 
Furthermore, in order to maintain compatibility with the previous version, nothing should be printed, and ```unregister_device_notification(1)``` should be called.