Refactor xsection 2d

 - splits single frame display off into a separate class, needed for live/streaming display
 - change limit functions to only take the image as an argument.  Management of the limit arguments is taken care of by using closures 
 - updated the demo to work with the changes.
Does this function update the limits on the axes?  Or is this still assuming that images of the same shape are being passed in?