text: Title: Deserialize raw query types into richer python types
  Body: ## Problem
  
  <!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
  
  We currently deserialize raw query fields into types that are different than what the core ORM uses, e.g. `Decimal` becomes `float` instead of `decimal.Decimal`, this was implemented this way for backwards compatibility reasons.
  
  ## Suggested solution
  
  <!-- A clear and concise description of what you want to happen. -->
  
  We should use types that are nicer to work with:
  - [ ] `datetime.datetime` for `DateTime` fields
  - [ ] `decimal.Decimal` for `Decimal` fields
  - [ ] `prisma.Base64` for `Bytes` fields
  