gui canvas: further clean up

still investigating what's going wrong with PlotCanvas
gui canvas: fix bug with plotcavnas always needing a new buffer

it just needs to always redraw after size changes.

there might still be some bug with DC "leakage"
gui canvas: ensure we resize the buffer to a small size at init

should probably have no effect as events are probably only sent from the
main loop
gui view: disable view to content tools for views not able to

now separate the "high level" method fit_view_to_content(), which presence
indicate that it's possible for the user to resize, and the "low level"
fit_to_content(), which just actually does the computation and redrawing.