Migrate page module to dataclasses
Note that with the autogenerated eq, 1 and True in the
resolve_redirects flag are considered equal, while the previous
implementation (correctly, I’d say) considered them different (because
it compared with is instead of ==). I’m not a huge fan of this, but
I can live with it, since mypy should already protect us from
instantiating the class with an int there.