Revise getattribute userdata retrieval

Instead of copying the whole array to user space (especially awkwardly
for the userdata_types, since there is no way for TypeDesc to specify
a TypeDesc type!), I changed it so that they are actually retrieving
a pointer.  So it looks like this:

    ustring *names = NULL;
    shadingsys->getattribute (group, "userdata_names",
                              TypeDesc::PTR, &names);
    // now names[0] is the first name, names[1] the second, etc.

This is safer and simpler, and doesn't require coping or allocation, since
the names and types already exist in the group as a contiguous array.

Also, I added one more tag, "userdata_offsets". Suffice it to say that
in a future checking, it will all be clear how and why it's used.