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