Modified map scaling to take into account the map zoom level to

give a better scrolling experience when map is not at the default
zoom level.

Also introduced zoom limits so the map cannot be zoomed into
nothingness or blown up farther than is necessary.

References #64 

This implementation may not give the optimal scrolling experience and could probably be improved, but for now it at least does give the map better scrolling behaviour when it is zoomed in or out.