:mega: New
1. Make `backends.fsa` and `backends.fsa_lite` protected by `backends.proxy`. The other parts of this project will access backends module by this newly added `proxy`. This change allows users to deliberately change `proxy` for testing purposes. For example, the users can disable `flask-sqlalchemy` by setting `proxy.fsa = None` even if the package is already installed.
2. Provide two new methods `get_flask_sqlalchemy_proxy_ver(...)` and `get_flask_sqlalchemy_lite_proxy_ver(...)`. In run time, they are totally the same as `get_flask_sqlalchemy(...)` and `get_flask_sqlalchemy_lite(...)`, respectively. The only difference is that the returned values of `_proxy_ver(...)` are notated by the the proxy classes like `SQLAlchemyProxy`. Users can use these methods to check the compatibility with the falling back version via the static type checker.
3. Add three examples (demos): `examples.app_fsqla`, `examples.app_fsqla_lite`, `usage`.
4. Add unit tests and the corresponding configurations.
5. Add the GitHub workflow for running the unit tests.
:wrench: Fix
1. Fix: When the module is reloaded, accessing the `SQLAlchemyProxy().Model.query` may cause `RuntimeError`. Now, this error has been catched.
2. Fix: Prevent `flake8` from raising `F722` when working with older python versions (`Python<3.10`).
:floppy_disk: Change
1. Update the metadata of the package. The chages are made for adjusting the new optional dependencies and tests.
2. Update the project information for preparing to upload a new PyPI release.