node_slopes, aspect, hillshade

1. Created grid.aspect() in base to calculate node aspects either from
output of grid.node_slopes_using_patches() or direct from elevation
data.

2. Promoted Katy B’s grid.hillshade() from raster to base to calculate
node hillslopes. Some minor debugging. Its functionality is now more
flexible, but original code using it will still run as-is. It too can
take either output from grid.node_slopes_using_patches() and
grid.aspect(), or can work direct from elevation data.

3. All of slope, aspect, hillshade methods can now return either degree
or radian values, according to parameter ‘unit’.

4. grid.node_slopes() is now just an alias for
grid.node_slopes_using_patches().