Refactored LightSource.shade_rgb into three separate functions
Added support for vertical exag and non-uniform spacing to LightSource
Added new blending modes to LightSource for more realistic rendering
Updated shading example to show new styles and added exmaple DEM from SRTM data
Make the "fraction" kwarg behave as it did before recent LightSource enhancements
Strip whitespace and strict PEP8 compliance
Avoid potential divide by zero in LightSource.hillshade
Fix calculation of aspect for hillshading.
Make clipping work properly for effectively planar surfaces
Added tests for LightSource functionality
Added example of using the custom hillshading on a 3D surface plot
PEP8 fixes
Avoid leaking file descriptors in tests and examples
BUG : fix list comprehensions over class members

Due to scoping fixes in py3k, list comprehensions over class level
attributes during class definition does not work (see
http://stackoverflow.com/questions/13905741/accessing-class-variables-from-a-list-comprehension-in-the-class-definition).

Superficially Fixes #3436. There seem to be other issues
BUG : fix glaring syntax error
BLD/BUG/DOC : made pytz a required dependency

closes #3423
DOC : removed freetype version caveats

minimum version for freetype is 2.3

closes #3412
BLD : updated message when to pytz found
BUG : fix encoding of png data

When formatting the png data to send over the wire need to decode the
byte string to ascii.  If this is not done the literal string sent
to the browser is:
   "data:image/png;base64,b'iVBOR...'"
instead of
   "data:image/png;base64,iVBOR..."

The extra b' makes the string no longer a valid png which is why
we were getting white boxes
Allow running from non-ascii directory on Windows