For 3.2 USD will be bumped to a newer version (21.11 or 22.03)
with some slight API changes, however since we cannot simultaneously
land the libs for all platforms as well as these code changes,
we'll sadly have to support both 21.02 and 21.11+ for at least a
short period of time, which does sadly make the code a little "stinky"
@Michael Kowalski (makowalski) did most of the work here, I just added the ugly hacks
needed to bring back 21.02 support. He left a few TODO's and I'm
not entirely sure if these need to be resolved before landing or not.
tested against USD 21.02, 21.11 and 22.03 however even when I had
the sunlamp commented out I had no test failures, so test coverage
could probably be better (perhaps a fun short GSOC idea?)