text: Title: [BUG] After first_or_none of class FindMany, limit_number == 1 remains
  Body: **Describe the bug and reproduce and expected behavior**
  After first_or_none of class FindMany, limit_number == 1 remains.
  So 
  ```python
    requests = RequestModel.find() # I have 3 requests 
    first_request = await requests.first_or_none() # Return first request
    requests_list = requests.to_list() # In my opinion It must to return 3 requests, but returns 1 after first_or_none because first_or_none  assigns limit_number == 1
  ```
  It's very unobvious!
  
  **Solution**
  ```python
  async def first_or_none(self) -> Optional[FindQueryResultType]:
      """
      Returns the first found element or None if no elements were found
      """
      existing_limit_number = self.limit_number
      res = await self.limit(1).to_list()
      self.limit_number = existing_limit_number
      if not res:
          return None
      return res[0]
  ```