Added `OsdUtilVertexSplit` which creates a vertex-varying data table by duplicating vertices in a `FarMesh`.  Catmark subdivision is supported.

* added public functions to `FarMeshFactory` that duplicate, rearrange, and split vertices
* added supporting protected functions to `FarCatmarkSubdivisionTablesFactory` and `FarPatchTablesFactory`
Fixes a bug in `FarCatmarkSubdivisionTablesFactory` that prevented the `CATMARK_QUAD_FACE_VERTEX` kernel from being selected for subdivision level 2 or greater.
added memcpyasync and streams to cuda backend
Merge pull request #340 from adityaatluri/dev

added memcpyasync and streams to cuda backend
Merge pull request #333 from nathan-at-digitalfish/vertex_splitting

Vertex splitting
Merge pull request #334 from nathan-at-digitalfish/fix_quad_face_factory

Fix for CATMARK_QUAD_FACE_VERTEX kernel in FarCatmarkSubdivisionTablesFactory
Revert "added memcpyasync and streams to cuda backend"

This reverts commit 84212cd7254dc8b10d40c21b8caa546f1b3a212f.
Merge remote-tracking branch 'upstream/dev' into dev
Don't define min/max in windows.h, this leads to compilation issues
Merge branch 'dev' into cuda-dynload