Improve maintainability of devices and add support for all current models

This removes all CPID_* and BDID_* defines which appear useless as the
same information is already stored in the irecv_devices[] struct.
Furthermore this removes a big inefficient switch() to determine a
device in favor of a simple loop on the irecv_devices[] struct. Overall
this means much less maintainance to add new device models in the
future.