This is a nearly verbatim copy of the GLU tessellator source code from
SGI's OpenGL Sample Implementation at
http://oss.sgi.com/projects/ogl-sample/ . Per
http://oss.sgi.com/projects/FreeB/ , the code is covered under the SGI
Free Software License B, version 2.0, a copy of which is in
LICENSE.txt in this directory.

The following changes were made in order to incorporate this code:

  - The addition of a simplified gluos.h to eliminate operating system
    dependencies.  All entry points to the tesselator were prefixed
    with internal_ via #defines, to avoid symbol collisions with any
    host OS version of GLU.

  - The removal of inclusion of GL/glu.h and replacement with an
    include of internal_glu.h.

  - In tess.c, the obsolete entry points gluBeginPolygon,
    gluNextContour and gluEndPolygon in tess.c were #if 0'd out.
    Default branches were added to the switch statements in GotoState.

  - In memalloc.h, the include of malloc.h was changed to an include
    of stdlib.h.

  - In normal.c, an unused variable "w" was removed from
    __gl_projectPolygon. #if guards were placed around the definition
    of the unused Normalize function.

  - In priorityq-heap.c, an #include of <limits.h> was added.

  - In sweep.c, IsWindingInside() was given a return value to silence a
    warning-as-error in release builds.

  - In sweep.c, DoneEdgeDict()'s fixedEdges was wrapped in #indef NDEBUG, to
    silence a warning-as-error in release builds.

  - In priorityq.c, render.c, and others:  the construct "if(1)...else" was
  replaced with "do{...}while(1)" to silence a warning-as-error in Mac builds.
