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.
- [ ] Add low-level ellipse rendering support
- [ ] Approximate `Circle` with an ellipse in Earth-based projections