feat(couchService): add PageInfo abstraction