Added uniqueIDs to MapObjects

Unique IDs (based on the original work by https://github.com/MegaJiXiang) uses QUuid to create a unique ID.

We may need to add a preference setting to turn this feature on/off
Here I see cloning of an object group is assigning unique IDs to the objects in the new object group, using the unique ID counter from the map of the object group being cloned. This has two problems:

* It crashes when the object group being cloned is not part of a map (I don't know if this is currently the case anywhere, but it's bad style).
* The resulting object group will have objects that already had an ID assigned, but who is to say these IDs are unique for the map that the object group may be added to?

So, I think this change should be reverted and instead `Map::adoptLayer` should assign IDs where necessary (previous comment).