Added Ref.refId. Moved Ref.getId to ResolvedRef.

If you have a RefFuture, then calling getId used to block. This now has to be done more explicitly, by RefFuture.fetch.getId (to make it clear that a blocking operation is being called).

Ref.refId will return an asynchronous ID.  For example, RefFuture.refId would return a RefFuture[ID]