Rate Limiting Explained: Token, Sliding, Fixed, Leaky