Document how to create ASGI middlewares (#1656)
Document how to create ASGI middlewares (#1656)

* Document how to create ASGI middlewares

* Fix typo

* Add more documentation on how to create pure ASGI middlewares

* Apply suggestions from code review

Co-authored-by: Florimond Manca <c491f569130f6f25f76edbdf24dcdb8e627dfb7b@protonmail.com>

* Apply suggestions from code review

Co-authored-by: Sebastián Ramírez <668e2a3febf6a4b75056e840735926407962bc4e@gmail.com>

* remove empty spaces

* Add asgiref hyperlink

* Fix per-request section

* Fix scope info

* Remove example section

* Update docs/middleware.md

Co-authored-by: Florimond Manca <c491f569130f6f25f76edbdf24dcdb8e627dfb7b@protonmail.com>

* Update docs/middleware.md

Co-authored-by: Florimond Manca <c491f569130f6f25f76edbdf24dcdb8e627dfb7b@protonmail.com>

* Apply suggestions from code review

Co-authored-by: Florimond Manca <c491f569130f6f25f76edbdf24dcdb8e627dfb7b@protonmail.com>

* Update docs/middleware.md

Co-authored-by: Jean Hominal <8b7ab8b9b51218d59dcfe64bf0c61e7ac37ee75a@gmail.com>

* Apply suggestions from code review

* fix typo

* Apply suggestions from code review

Co-authored-by: Sebastián Ramírez <668e2a3febf6a4b75056e840735926407962bc4e@gmail.com>

* Apply suggestions from code review

Co-authored-by: Sebastián Ramírez <668e2a3febf6a4b75056e840735926407962bc4e@gmail.com>

* Apply suggestions from code review

* Update docs/middleware.md

* Add reference to Starlette components

* Add `MutableHeaders` import

* Fix typos from suggestions

Co-authored-by: Florimond Manca <c491f569130f6f25f76edbdf24dcdb8e627dfb7b@protonmail.com>
Co-authored-by: Sebastián Ramírez <668e2a3febf6a4b75056e840735926407962bc4e@gmail.com>
Co-authored-by: Adrian Garcia Badaracco <e27daa303f2cab77ffec56a54997f382ae605c48@users.noreply.github.com>
Co-authored-by: Jean Hominal <8b7ab8b9b51218d59dcfe64bf0c61e7ac37ee75a@gmail.com>
encode/starlette,encode/starlette