Abstract viewport resizing

Add setters/getters for the viewport, and trigger a "ViewportResize" event.  Use that event to alter the dimensions of the stage and canvas appropriately.
Merge pull request #691 from starwed/viewport-resize

Abstract viewport resizing