Separate code

Dear Matt,

This patch series splits usbg.c file into internal header and source and also moves gadget-schemes functionality to separate file. We have also prepared a stub functions and a configure flag which allows to disable gadget shcemes if someone would like to skip libconfig dependency. This flag doesn't change the API thanks to those stub functions. 

I didn't send this series to linux-usb because is more about code movement than feature development. I  considered this more like a spam on the list with dozen lines of copy-pasted code than a usefull message.

We have also a quite long set of patches which adds tests for libusbg. We need to polish them a little bit and I will send it in mid January.

Best regards,
Krzysztof Opasiak