Bring in Google Mock

  * Integrate Google Mock (at their trunk SVN revision 410 --
    http://code.google.com/p/googlemock/source/detail?r=410). Note only
    a subset of files are included (things like the LICENSE file, the include/
    directory, and the src/ directory)

  * Revise the build rules for libgtest. Just compile gmock-all.cc, and
    also compile gmock-all.cc to build a libgtest that includes both
    Google Test and Google Mock. Initially I had a separate library, but
    I didn't think it made sense to keep them separate.

  * Add a RegalDispatchGMock.py dispatch generator, which generates
    test/RegalDispatchGMock.cpp/.h, which in turn takes the C style
    functions used by the Regal dispatch table and turns them into calls on
    a Google Mock implementation. Modifies scripts/Export.py to know about
    a test source code directory, and to invoke the new code generator.

  * Add testRegalState.cpp which requires Google Mock work correctly, and
    which adds a simple test that Regal::State::Depth::Set() invokes
    the right series of calls in the dispatch layer in order to set a new
    depth state.

  * Remove the demonstrative test I added to tests/test_main.cpp, as there
    are now many tests and this one was not valuable beyond the "Google
    Test works" stage.

  * Fix the null build. `make` and then `make` immediately afterwards
    was rebuilding libraries since the libraries depended on the lib/
    subdirectory, but that directory ended up with a modification time
    later than that of the library, causing make to think it needed to
    build the library again on the next round. Likewise there were
    dependencies on bin/ for things that were then built into bin/.
    Rather than having a rule `bin: mkdir -p bin`, I modified other
    rules to do a `mkdir -p $(dir $@)` to ensure the destination
    directory existed before running the linker or archiver.

  * Fix a few other dependency issues I uncovered when doing `make clean
    && make -j20`, where some libraries were being used before being
    built.

Caveats -- Please read!

  1. Google Mock does quite a bit of code generation through its macros
     and templated implementation. RegalDispatchGMock.cpp can take
     minutes to compile, due to the size of the API. On my machine,
     the output .o file is a huge 24 megabyte binary.

  2. The incremental compile time is also unfortunately a bit large.
     Touching testRegalState.cpp means reading and expanding the macros
     in RegalDispatchMock.h, which takes tens of seconds to do.

     Unfortunately with the way that Google Mock interfaces are defined,
     there is no seperation of the mock interface from its
     implementation. All tests that include RegalDispatchMock.h will
     incur overhead in expanding macros and setting up class data for the
     full API.

  3. Google Mock by default only supports functions with at most ten
     arguments. There were a handful of functions that are larger than
     this in the dispatch interface. I chose to set up the code
     generator to silently ignore these calls rather than forwarding
     them to the generated mock interface.

     Google Mock contains a number of .pump files which define a default
     call arity of 10, and it is perfectly possible to invoke
     googletest/scripts/pump.py to regenerate these files to allow for a
     larger arity, but I felt that keeping the default for now was fine.

     Regal looks like it needs an arity of 15 if all functions are to be
     mocked.
Implement glPopAttrib(GL_TRANFORM_BIT)

Extend the existing RegalPPa/RegalState functionality to add support for
saving and restoring the server side transform state.

Unlike the other emulated functionlity in RegalState, the code I added
does minimize the state transitions, which is especially a good idea if
the backend does not support certain state (such as clip planes) that
may not be actually set by the Regal client.

Extends the testRegalState test to fully cover the new state code. Adds
a quick test for the PushAttrib/PopAttrib calls.

Half of the fix for Regal Issue #27.
Prune back RegalDispatchGMock interface for better build turn-around time.
Refresh GLEW sources.
Add freeglut sources.
Logging refinements for glPush/PopMatrix and display list compilation.
boost::print::string_list::pop_front and pop_back added.
Utility function for loading a file into a std::string added.
Refresh VC10 projects for regaltest purposes.
Merge branch 'implement_ppa_transform_bit' of git://github.com/adhoc-bobcat/regal
Rename Regal::RegalPpa -> Regal::Emu:Ppa
use std::swap_ranges for swapping arrays.
Make the dispatch table initializers available to regaltest.
White-list more GL functions into RegalDispatchGMock, for regaltest purposes.
freeglut tidy-up for possible upstreaming.
For X11/EGL mode, include additional X11 headers that would have come from GL/EGL.h
VC 10 project fixups for building regaltest
Extend clip plane enum support to GL_CLIP_PLANE6, GL_CLIP_PLANE7
Add category annotation for GL_VERSION_2_0 entry points
Extend RegalDispatchGMock to GL_VERSION_2_0, in addition to 1.0 and 1.1