Add a profileSafe method so profiles with same id can be safely interleved.

When tracking api calls, it's not enough for us to just pass a name as an
id to keep track of the profile call.  This change will return an id
that can be used to close the correct profile call when there are multiple
profile calls with the same id.

I'm not in love with the `profileSafe` name so if you think of something
better I'm good with that.