Ftdi scratch

This was originally meant a scratch to be redone, as far as I recall the code isn't too terrible, but if you think I need to clean up more and split FtdiInterface into seperate .h and .c files I'll be happy to sit down more on it.

I really wanted to do more work before I sent the pull req but I see I haven't had time to work on it for a while and it's a pity to let it sit. 
Not really because the plugin works differently now...
The device has one or more interfaces which are the output and have the SetupOutput() function, the device itself doesn't have this function anymore....

I guess I could add a similar function that check whether the interfaces work, the question then is what should the behavior be?
Should it fail if even one interface fails to setup or should it succeed if at least one interface succeeded in coming online?