Support for multiple map renderers
Related: #133
This PR adds a UI control to change the map render at runtime. Here are some notes/questions for the maintainer(s):
- I created a new style settings page and radio field to swap renderers. Let me know if you think the UI element should go elsewhere.

- To store the desired renderer, I added a property "fresco:renderer" to the metadata object. I think this is a good way to track the desired renderer, but let me know if you think it should be stored elsewhere.

- I decided modify
MapMapbox.jsxto accept multiple renderers instead of creating a new map component because, as far as I can tell, maplibre-gl v2 is completely backwards compatible with mapbox-gl v1. This may not be the case with other renderers, so perhaps there should be a new map component for each renderer (e.g.MapMapbox.jsx,MapMapLibre.jsx), even if the Mapbox and MapLibre map components are redundant. - Running
npm installseems to have automatically changed the lock file version to 2, generating a large number of changes topackage-lock.json. I believe this is because I'm running node v16.15.0 and npm 8.5.5 on my machine. If this is undesirable, let me know what node version I should be working on.
@dwoznicki just a quick follow up on this PR. It's not lost we have just been navigating several other things. We also had to update the package-lock.json file as the CI was timing out. If you're interested in helping with the linter errors you can see what's happening in the Netlify build on this PR: https://github.com/go-spatial/fresco/pull/136
Thanks again for the contribution.
@ARolek Well, it looks like the build was failing due to a .map() with a callback that wasn't returning, so I changed that to a .forEach(). Now the build is failing with an Out Of Memory Error, which is a bit harder to solve.
@dwoznicki can you rebase against master? @justenPalmer did some cleanup that should fix the linting errors.