1. Rename "compose.web" to "compose.html" in Gradle DSL
2. Rename maven artifacts (with backward compatible "relocation" artifact)
3. Rename "web" folder to "html"
Will do in support/1.4.0 branch
1. Move examples/web-* to examples/html/*
2. Rename Tutorials/Web to Tutorials/HTML
3. Rename "Compose for Web" to "Compose HTML Library" in the tutorials
- add zoom field, which is the same across different screen/window sizes
- scale is not the base state now, it is derived from the current zoom and the current screen/window size. it now represents the end scale of the image
- drag amount is still independent of scale/zoom (if we drag by 5 pixels, the image moves by 5 pixels)
- offset is still limited by the area and the current scale
* ImageViewer - limit zoom by the window/screen size
- add zoom field, which is the same across different screen/window sizes
- scale is not the base state now, it is derived from the current zoom and the current screen/window size. it now represents the end scale of the image
- drag amount is still independent of scale/zoom (if we drag by 5 pixels, the image moves by 5 pixels)
- offset is still limited by the area and the current scale
The code of `ScalableImage` is exactly the same as [here](https://github.com/JetBrains/compose-multiplatform-core/pull/459/files#diff-2df227d37a7fcdb885f4fd1a715c0efd94b8e206d446d553d69a456f83e284f6R19):
1. The initial size of an image is chosen by the area size (phone/windows size)
2. We can zoom using pinch-to-zoom (with taking centroid of touches into account)
3. We can zoom using mouse scroll (also, taking the mouse position into account). On touchpad/macOS it also works great.
4. The code of the old `ScalableState` and `ScalableImage` was complete rewritten.
5. The zoom is not limited by phone/window dimensions, we can zoom out
* Avoid scaling code duplication
* Move AndroidImageStorage into separate package
* Implement storing metadata on Android
* Move file extensions to separate class