text: Title: Explore Pydantic usage instead of dataclasses
  Body: Piccolo uses dataclasses extensively, all over the code base.
  
  It's worth investigating if any noticeable performance improvement can be achieved by using Pydantic models instead.