Refactor scan posts

This makes Post.__init__ more manageable (without any interesting changes in output) and fixes #806