Implement reading opaque types.

In the process, tweak the handling for string and vlen arrays, pending
good test cases.