lib: support non-core rumble motors

Devices without a core interface (like ProControllers) provide the rumble
interface via their extension interfaces. We now use the first
extension-interface with a working rumble-motor as default rumble
interface instead of relying on the core interface.

Rumble with Pro-Controllers should now work properly.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>