Fix OsdUtilRefiner incorrect "Invalid size of patch array" error reporting.

The size of the patch array can only be checked in uniform mode. An argument can be
made that this should be an assert...

fixes #292
Fix OsdUtilAdaptiveEvaluator concurrency issue

- add a limit evaluation method to EvalLimitController that allows
  client code to directly pass the output buffer without binding it
  to the Context (the call only computes vertex interpolation of a
  single sample)

- switch the OsdUtilAdaptiveEvaluator to use the new method from the controller
  and stop stomping member

- cleanup buffer and member variables no longer used

- cleanup initialization logic to be better aware of uniform / adaptive

- add some assert sanity checks in the cpuEvalLimitKernels

fixes #293
Fix adaptive isolation of sharp corner vertices

- fix the vertesIsBSpline logic to correctly recognize these sharp corner vertices
- fix another bug where a loop was missing vertices from from quad faces with 2
  non-consecutive boundaries

fixes #294
Minor improvements to HUD pulldown

- don't close the pull-down when selecting an item
- change color of down-arrow to yellow when the pulldown is open
Fix HUD pulldown mouse-click to handle relative window coordinates.
Fix file permissions on farPatchTablesFactory.h
Minor cosmetic fixes to the HUD's font
Fix incorrect FarMeshFactory logic for isolating multiple corner vertices in corner patches.

- the previous fix omitted to use the corner count which might have caused trouble with certain topologies

fixes #294
Fixed ptexViewer build error on mac
glViewer: stop updating during freeze.
enable GLSL compute kernel in glBatchViewer
temporary workaround for the synchronization bug of glsl compute kernel.

closes #295
Fixed calculation of screen space LOD tess factors for transition corner patches.

fixes #296
Reorganize ComputeContext and ComputeController.
Moved transient states (current vertex buffer etc) to controller.
ComputeContext becomes constant so that it's well suited for coarse-grain
parallelism on cpu. The prims sharing same topology (ComputeContext) can
be refined simultaneously by having mutiple compute controllers.
Client facing API doesn't change.
Remove debugging std::cout calls as these classes get used in Presto.
Add tbb kernel to glBatchViewer
Interleaved buffer support in OsdCompute. Removed OsdVertexDescriptor and replaced with OsdVertexBufferDescriptor.
All kernels take offset/length/stride to apply subdivision partially in each vertex elements.

Also the offset can be used for client-based VBO aggregation, without modifying index buffers.
This is useful for topology sharing, in conjunction with glDrawElementsBaseVertex etc.
However, gregory patch shader fetches vertex buffer via texture buffer, which index should also
be offsetted too. Although gl_BaseVertexARB extension should be able to do that job, it's a
relatively new extension. So we use OsdBaseVertex() call to mitigate the compatibility
issue as clients can provide it in their way at least for the time being.
Added interleaved buffer mode in glViewer
Added new example 'topologySharing'.
It tests vbo interleaving, aggregation, sharing topology, etc
Change EvalLimit Gregory patch kernels to the large weights table to accomodate higher valences.

This change matches this CPU kernel more closely to our GPU patch shaders.

fixes #298