Moved some Id functionality to the Identifer trait.
Added ShareId struct.
Added WeakId.