function loadStaticData(dataUrl, lang, clockPromise) {
    return Promise.all([
        loadJSON(`assets/dictionary-${lang}.json`),
        ...[
            'railways.json.gz',
            'stations.json.gz',
            'features.json.gz',
            'rail-directions.json.gz',
            'train-types.json.gz',
            'train-vehicles.json.gz',
            'operators.json.gz',
            'airports.json.gz',
            'flight-statuses.json.gz',
            'poi.json.gz'
        ].map(fileName => `${dataUrl}/${fileName}`).map(loadJSON),
        clockPromise.then(clock => Promise.all([
            getTimetableFileName(clock),
            ...getExtraTimetableFileNames(clock)
        ].map(fileName => `${dataUrl}/${fileName}`).map(loadJSON)))
    ]).then(data => ({
        dict: data[0],
        railwayData: data[1],
        stationData: data[2],
        featureCollection: data[3],
        railDirectionData: data[4],
        trainTypeData: data[5],
        trainVehicleData: data[6],
        operatorData: data[7],
        airportData: data[8],
        flightStatusData: data[9],
        poiData: data[10],
        timetableData: [].concat(...data[11])
    }));
}
Load all the static data.
@param {string} dataUrl - Data URL
@param {string} lang - IETF language tag for dictionary
@param {Promise} clockPromise - Promise for the Clock object representing the
    current time
@returns {Object} Loaded data