We want to have more efficient map views for readers by immediately querying the external data (geopoints, geoshapes, etc.) into the extension ParserCache data.
##Requirements
* [ ] Implement in Kartographer, behind a feature flag in parallel with the existing behavior.
* POC is done in SimpleStyleParser.php but this normalization function should be moved out of this class anyway. --> created a new class `ExternalDataParseTimeFetch`
* Should be performed before simplestyle transforms, for the Commons "Data" .map path.
[] Set "expensive" parser flag.
* Inlined geoshape will go directly into the parser cache along with other geometry, probably no changes needed there.
[x] Put it behind a feature flag, old code should still be run by default.
[] Failed requests can fall back to the old behavior gracefully after logging a warning.
* [ ] MediaWiki must be able to route requests to kartotherian directly.
* Development environment requires some tweaks to docker-compose.yml to allow local MediaWiki to contact local kartotherian.
* Production might not allow this until we set it up explicitly.
* [ ] Must work for ids and SPARQL query, for geoshape, geoline, geomask, geopoint.
* [ ] Must work for [[ https://www.mediawiki.org/wiki/Help:Extension:Kartographer#Map_data_from_Commons | maps from commons ]].
* [ ] Keep kartotherian code for expanding geoshapes--although this can go away in the long term.
[] Handle external data and default properties
##Implementation notes
Example that has default properties and properties in external data
```
<mapframe text="Geopoints via sparql" width="300" height="300" zoom="13" align="left" latitude="43.735011" longitude="7.413197">
{
"type": "ExternalData",
"service": "geopoint",
"query": "SELECT DISTINCT ?id ?geo (IF(?type = wd:Q33506, 'museum', '') AS ?marker_symbol) WHERE { ?id wdt:P17 wd:Q235; wdt:P31 ?type; wdt:P625 ?geo.} LIMIT 50",
"properties": {
"marker-size": "large",
"marker-symbol": "circle",
"marker-color": "#FF5733",
}
}
</mapframe>
```