Fix zooming to keep canvas in the same position
Add some zooming tests
Refactor algorithm
Merge pull request #20 from praekelt/feature/issue-20-zoom-out-fix

Zooming out canvas does not keep position