text: Title: Explicit Routers
  Body: **Is your feature request related to a problem? Please describe.**
  The [documentation](https://tortoise.github.io/router.html?h=router#model-signals) and the implementation for the Router don't seem to match. The documentation suggests that the methods for the router class are explicit while the code suggest that these methods are optional. The current code appears to follow django's methodology of allowing multiple routers to be registered and then processed in order of significance. 
  
  **Describe the solution you'd like**
  Routers to be implemented according to the documentation. This would also allow for more accurate static type checking through Protocols. An example for the change can found [here](https://github.com/tortoise/tortoise-orm/compare/develop...i-am-grub:tortoise-orm:explicit-router)
  
  **Describe alternatives you've considered**
  Updating the documentation to clarify the intent of the router implementation.
  
  
  