Feature: Zooming

- Implements boundaries based on canvas size
- Min zoom is 1 (original scale). Maybe later I'll implement zooming out further, but it needs a little more logic
- If canvas size is less then window size, zooms in automatically