Round translation in canvas setTransform

The translation in setTransform should be rounded to the nearest pixel, since canvas implementations deal with fractional coordinates inconsistently.