Add zoom threshold, alternate widget type, unit tests, more examples and rework source code

A zoom threshold is now available as an option to enable the widget to remain invisible until a certain zoom level is reached.

Add an attribution box widget so that the OSM edit links can be smaller, more out of the way.

These features were added because for my purposes, I'd like to use this plugin and encourage users to contribute to OSM, but I don't want this widget to be a "1st class feature", I want it to be smaller and more out of the way so as not to confuse users that it is central to the application.

In the process, I refactored the original source code a bit and added some unit tests to help with development. I also added examples to showcase the new features.