Add url parameter to install_xbuildenv. ### Description

Resolve #3567 

Adds url paramter to `install_xbuildenv`, which helps installing xbuildenv from arbitrary URL. This is mostly for developers / maintainers who want to test tot xbuildenv.

This PR also adds a private CLI entrypoint `pyodide xbuildenv install`.

### Checklists

- [x] Add / update tests

package:
  name: scikit-learn
  version: 1.2.0
  tag:
    - min-scipy-stack
  top-level:
    - sklearn
source:
  url: https://files.pythonhosted.org/packages/27/a0/95eae31ceabeb7710a694367816edfcc0ccb001c794c14b3b234c148ae50/scikit-learn-1.2.0.tar.gz
  sha256: 680b65b3caee469541385d2ca5b03ff70408f6c618c583948312f0d2125df680

build:
  cflags: -Wno-implicit-function-declaration

requirements:
  host:
    - numpy
    - scipy
  run:
    - scipy
    - joblib
    - threadpoolctl

test:
  imports:
    - sklearn
    - sklearn.calibration
    - sklearn.cluster
    - sklearn.compose
    - sklearn.covariance
    - sklearn.cross_decomposition
    - sklearn.datasets
    - sklearn.decomposition
    - sklearn.discriminant_analysis
    - sklearn.dummy
    - sklearn.ensemble
    - sklearn.exceptions
    - sklearn.externals
    - sklearn.feature_extraction
    - sklearn.feature_selection
    - sklearn.gaussian_process
    - sklearn.impute
    - sklearn.isotonic
    - sklearn.kernel_approximation
    - sklearn.kernel_ridge
    - sklearn.linear_model
    - sklearn.manifold
    - sklearn.metrics
    - sklearn.mixture
    - sklearn.model_selection
    - sklearn.multiclass
    - sklearn.multioutput
    - sklearn.naive_bayes
    - sklearn.neighbors
    - sklearn.neural_network
    - sklearn.pipeline
    - sklearn.preprocessing
    - sklearn.random_projection
    - sklearn.semi_supervised
    - sklearn.svm
    - sklearn.tree
    - sklearn.utils
about:
  home: http://scikit-learn.org
  PyPI: https://pypi.org/project/scikit-learn
  summary: A set of python modules for machine learning and data mining
  license: new BSD

package:
  name: scikit-learn
  version: 1.2.0
  tag:
    - min-scipy-stack
  top-level:
    - sklearn
source:
  url: https://files.pythonhosted.org/packages/27/a0/95eae31ceabeb7710a694367816edfcc0ccb001c794c14b3b234c148ae50/scikit-learn-1.2.0.tar.gz
  sha256: 680b65b3caee469541385d2ca5b03ff70408f6c618c583948312f0d2125df680

build:
  cflags: -Wno-implicit-function-declaration

requirements:
  host:
    - numpy
    - scipy
  run:
    - scipy
    - joblib
    - threadpoolctl

test:
  imports:
    - sklearn
    - sklearn.calibration
    - sklearn.cluster
    - sklearn.compose
    - sklearn.covariance
    - sklearn.cross_decomposition
    - sklearn.datasets
    - sklearn.decomposition
    - sklearn.discriminant_analysis
    - sklearn.dummy
    - sklearn.ensemble
    - sklearn.exceptions
    - sklearn.externals
    - sklearn.feature_extraction
    - sklearn.feature_selection
    - sklearn.gaussian_process
    - sklearn.impute
    - sklearn.isotonic
    - sklearn.kernel_approximation
    - sklearn.kernel_ridge
    - sklearn.linear_model
    - sklearn.manifold
    - sklearn.metrics
    - sklearn.mixture
    - sklearn.model_selection
    - sklearn.multiclass
    - sklearn.multioutput
    - sklearn.naive_bayes
    - sklearn.neighbors
    - sklearn.neural_network
    - sklearn.pipeline
    - sklearn.preprocessing
    - sklearn.random_projection
    - sklearn.semi_supervised
    - sklearn.svm
    - sklearn.tree
    - sklearn.utils
about:
  home: http://scikit-learn.org
  PyPI: https://pypi.org/project/scikit-learn
  summary: A set of python modules for machine learning and data mining
  license: new BSD
