Simplify the version bump process. ### Description

Simplify the version bump process.

- Use substitution hook in docs to update CDN URL.
  - In `dev` or `prerelease` versions, it will point to `dev` url
  - In `stable` versions, it will point it `vX.Y.Z` url
- Introduce a version bump script `tools/bump_version.py`.


~- Use `bump2version` to bump Python versions (continuing from #2460)~
~- Use `npm version` to bump JS versions~
~- Update `run_docker` script to use latest deployed pre-built docker image when `--pre-built` option is specified.~

### Checklists

- [x] Add new / update outdated documentation

package:
  name: optlang
  version: 1.5.2
source:
  sha256: 14464cff638b58670c1a7f5896f19dd7b595a12c1d30a27c59074700833c1677
  url: https://files.pythonhosted.org/packages/12/3e/9d0b72cf5a8ff660e5787a0797906e04942081f3ad4a95f860488affff2b/optlang-1.5.2-py2.py3-none-any.whl
requirements:
  run:
    - sympy
    - six
    - swiglpk
test:
  imports:
    - optlang
    - optlang.glpk_interface
    - optlang.symbolics

package:
  name: optlang
  version: 1.5.2
source:
  sha256: 14464cff638b58670c1a7f5896f19dd7b595a12c1d30a27c59074700833c1677
  url: https://files.pythonhosted.org/packages/12/3e/9d0b72cf5a8ff660e5787a0797906e04942081f3ad4a95f860488affff2b/optlang-1.5.2-py2.py3-none-any.whl
requirements:
  run:
    - sympy
    - six
    - swiglpk
test:
  imports:
    - optlang
    - optlang.glpk_interface
    - optlang.symbolics
