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

#release-notes .badge {
  margin-right: 5px;
  opacity: 0.7;
}

/* Don't make code smaller than other text it looks ugly */
code {
  font-size: 100% !important;
}

.section > h3 {
  /* shrink h3 a bit, was ~1.8em */
  font-size: 1.65em;
}

.section > h4 {
  /* shrink h4 a bit, was 1.44em */
  font-size: 1.3em;
}

/* Remove "captions" in text table of contents, keep subsections in sidebar */
.toctree-wrapper > .caption {
  display: none;
}

/* Display "async", "class" prefixes and parameters in upright style not italic */
.sig-param,
.property {
  font-style: normal;
}

.js.attribute.type {
  font-weight: bold;
}

code.literal {
  /* I don't like the badge py-data puts around code literals, it is too aggressive */
  background-color: unset;
  border: unset;
  /* Shrink the horizontal padding a little */
  padding: 0.1rem;
}

#release-notes .badge {
  margin-right: 5px;
  opacity: 0.7;
}

/* Don't make code smaller than other text it looks ugly */
code {
  font-size: 100% !important;
}

.section > h3 {
  /* shrink h3 a bit, was ~1.8em */
  font-size: 1.65em;
}

.section > h4 {
  /* shrink h4 a bit, was 1.44em */
  font-size: 1.3em;
}

/* Remove "captions" in text table of contents, keep subsections in sidebar */
.toctree-wrapper > .caption {
  display: none;
}

/* Display "async", "class" prefixes and parameters in upright style not italic */
.sig-param,
.property {
  font-style: normal;
}

.js.attribute.type {
  font-weight: bold;
}

code.literal {
  /* I don't like the badge py-data puts around code literals, it is too aggressive */
  background-color: unset;
  border: unset;
  /* Shrink the horizontal padding a little */
  padding: 0.1rem;
}
