Merge pull request #145 from stgeorges/master

Update surface.py
merge from V5 trunk (RH-26628, RH-26743, RH-27999, RH-26987, RH-27419)
Merge pull request #1 from mcneel/master

Update