Use ImmutableSet/Map in ServiceReferenceRegistry

Rather than wrapping collections in unmodifiable references, perform a
copy to obtain a properly-constant collection. These references are
usually retained for longer time, so opting for memory efficiency is
better than using sparse collections.

Change-Id: I708beaaa9abb13560297a7eb1369322220e87d5a
Signed-off-by: Robert Varga <rovarga@cisco.com>
Merge "Use ImmutableSet/Map in ServiceReferenceRegistry"