V4L/DVB (8672): gspca: Big rewrite of spca561.