Model.ViewPort: various changes

including changing Graphic.Scale as Double to being Vector so we can
have different scale values on all three orthogonal axes.