Core: defensive programming

Defensively set return-by-reference value to -1 in error condition
Core: use C99 flexible array member when possible

fix clang warning by using C99 flexible array member instead of zero
length array gcc extension
Core: fix 64-bits warning on OS X

suppress 64 bit truncation warning on OS X due to tv_sec being a __darwin_time_t which is a long, not an int
On gcc 4 and later, suppress the -Wcast-align warning in libusb.h
OS X: add Xcode project files
added some Xcode-related files to .gitignore