View scaling

Provides consistent scaling of tiles across screens of different pixel densities and orientations and reorganizes View class to clarify functionality. 
setZoom is also setting dirty to true. This is redundant here.