Reimplemented the parser logic as a series of calls inside a Parser
object. Much easier to understand and evolve the code now.

Still not tested, though. Probably lots of bugs.
Changed all the code so that Parser calls are always to URLs and all
scraped data is represented by objects.