Big refactor to better handle mapping coordinates between box2d and canvas