Added uniqueIDs to MapObjects
Some object unique ID changes

I think it's enough to just call it the object ID, and document that
these IDs are unique for each object on the map.

Since the first valid object ID is 1, the property is initialized with 0
now instead of -1.

Removed unnecessary ID assignments from MapWriter and
VariantToMapConverter. Any objects that don't have an ID assigned yet
will get one assigned once the ObjectGroup is added to the Map.