Changed the way remote device information is passed around

To make it possible to have native-less remote devices, the way that remote device information is passed around has been changed:
- Instead of passing only the identifier, the native layer now passes the entire local info dictionary to JS
- If no native layer is present, a “fake” local info dictionary is created by the remote library and passed to itself
- Regardless of the source of the local info dictionary, the remote library now saves its own information as a CWDevice
- Instead of passing only the remote identifier to the master, the remote library now passes all its information via a “remoteinfo”-type message
- If a master receives the “remoteinfo” message and no CWDevice was created for the remote yet (it’s native-less), one is created. If a device already exists, the message is handles as if it was a remoteidentifier message for now. This should be changed in the future.

This way, a native-less remote can send its remoteinfo, which will create a CWDevice on the master and therefore has a similair effect  to the deviceDetected message that is sent if a native-ful remote is detected via BT