Scaling and Canvas Override Settings, Clearing and Buffer

In this update I added options for overriding the basic settings for the
canvas and scaling, it is still however a work in progress. During the
process I moved a number of functions from visuals to canvas to better
correlate their proposed use.