Toughen up our GOF C++ conformance.  Next stop: -Wall -Werror
Also recognize .hpp files as headers.  Why do we have both .h's and .hpp's?
Avoid trailing ',' in enum for -ansi compliance
Typedef the behavior function pointer
Merge pull request #3 from DaveAckley/master

Tweaks