Track unique lights in a map

Instead of lights being a "blind" collection of lights, it's now a map. The key in the map is the DeviceID and therefore if we want to find/target a single light that becomes much easier now.

This also separates the light+light collection stuff into two separate files because files are cheap.