Windows: Direct control requests to a specific interface when possible
Control requests on composite devices for Windows is tricky, because not
all APIs are able to correctly process all types of requests. To improve
robustness, this change checks whether the control request recipient is
an interface or endpoint. If it is either, the control request will be
attempted against that interface's API first.
Additionally, when cycling through the interfaces to find a working API,
it will no longer fail if that API does not support the specific type of
control request because there is a chance that another API will succeed.
Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>