Summary:
Device management was inconsistent so far, this diff addresses the following issues
* pending a subtle timing issue, a physical android device might also show up as emulator, so effectively the device would be shown twice, but with the same content
* Metro devices now behave more like the android devices: offline devices are replaced if it comes online again
* Generalized this logic; the reducer now forces serials to be unique
* Fixed issue where a Metro device that disconnected due to a connection failure would be archived twice
* Use the metro connection url as serial, to have a slightly more future proof serial
Reviewed By: jknoxville
Differential Revision: D19996385
fbshipit-source-id: 0f6e3ddc6444542553d25cc3b592591652d688f2