Multiple stream support, MJPEG support, and more

I made several changes to libuvc so that I could use a device with two UVC interfaces (two cameras in one USB device). The device uses MJPEG (actually just regular JPEG frames, but the code should work for real MJPEG too), so I added support for that.

This does change the stream API a bit, but the existing API continues to work.