Set an absolute minimum scale level. Rename scale levels to convey more meaning.

At the moment it is possible to zoom out on an image infinitely as there is no absolute minimum value for scaling. Also, the naming scheme of min/mid/max is non-obvious and doesn't allow a fourth level to be set. This commit fixes these issues.

This is a API-breaking change so I'd understand if you were hesitant but I think the fact that a user can zoom out infinitely is a fairly major issue.

Also, it may be worth considering adding a 5th scale level (absolute maximum scale factor) if you ever add the bounce back effect on the zoom in gesture. Maybe a setScaleLevels(min, normal, doubleTap, max) is also in order?