Make name uniqueness part of Cell

When exporting to a GDS file a deep copy is done on all parts
of the design, which is prohibitively expensive in both CPU time
and memory. (We have designs with multiple GB of Polygon data.)

The copy is only done to prevent the Cell renaming from propagating
back to the object after saving.

Since the uniqueness of the name is a nice feature, but rather
depends on the Cell and not on the layout. This change moves
the feature into Cell. This also has the advantage of being able
to rename parts without touching their uniqueness.

This change is not backwards compatible due to deletion of the
uniquify parameter in Layout.save(). However, in most cases the
simplest fix is just calling layout.uniquify_names().