Allow nested structures to be returned from vertex shader.

I've got a few patches to submit, so would a branch per patch be best for you? All my changes are fairly independent of each other.