usb_power_delivery: better PD 3.0 support and other changes