patch methods for vononoi

Implemented patch_nodes, number_of_patches, and node_patches() for
voronoi.py.
Also changed the default flag on __init__(reorient_links) to True (per
group meeting last week).
Promote node_slopes_using_patches() to base

1. node_slopes_using_patches() has now been tweaked to work on both
rasters and voronoi, and now we have patch methods in voronoi, promoted
from raster.py to base.py.

2. voronoi grids now continue to store a copy of their actual voronoi
objects, as self.vor. This is important to allow easy plotting of
irregular grids.
imshow for irregular grids

Fairly significant modification of ll.plot.imshow.py to allow seamless
plotting of irregular grid objects. i.e., calls to e.g.,
imshow_node_grid where a voronoi grid or one of its child types are
passed will now automatically accept this input and plot the relevant
irregular node network. Plotting of irregular grids consists of
colouring the cells (==voronoi polygons) around the nodes with a colour
representing the node value.

Some boundary polygons will not plot with a colour. This is a known
limitation of voronoi_plot_2d that underlies the new code. There’s a
straightforward but fairly code-heavy fix outlined online we can use to
fix this (see link in comments), but I couldn’t face it right now.
Merge branch 'patches_and_slopes'
Merge branch 'master' into patches_and_slopes
Merge pull request #65 from landlab/patches_and_slopes

Patches and slopes