refactor ResourceIdentifier

Keep attributes text/prefix/uuid separate and decide via self.fixed how
the current text representation looks like.
For fixed case: return user set text
For non-fixed case: return prefix + current uuid hash

Also introduces the possibility to regenerate the hash part for
non-fixed resource identifiers (useful for the referred object to get a
new hash when the referred object changes)