internal/v4: resolve ids

This allows all charm store paths to contain charm URLs that are
not fully specified.
Using 'resolve' as the description to what ResolveURL does is circular. Would be nice to specify the expanded URL is returned in the url pointer, or unchanged.