Better geodesy handling

- [x] Add `CRS.Earth` which serves as a base for all Earth-based CRS (`EPSG3857` etc.)
- [x] Add `Map` `distance(latlng1, latlng2)` method that takes CRS into account and works with flat projections
- [x] Fix `Circle` to work with flat projections
- [x] Fix scale control precision in non-`EPSG:3857` projections.
- [x] Add low-level ellipse rendering support
- [x] Approximate `Circle` with an ellipse in Earth-based projections
- [x] Fix clamped circle rendering near poles
- [ ] Fix Canvas circles not clearing when updating LatLng

Should also fix #1465 #1442.