Make coordinate handling/conversions explicit.

Locations are handled in "world" coordinates, and drawing happens in
canvas coordinates. This change adds transparent conversion between the
two types.