Refactored DiaryParser separating from DOM parsing.

Now the bits which pull in the actual data from the DOM are in the
dom_parser object. The DiaryEntryParser now just contains logic
regarding the generation of the DiaryEntry model and all its child
models.

Seperating DOM specific code lets me swap out the dom_parser for
different webpages (the food diary vs the printable food diary), groups
together all the dom related code and makes everything much cleaner.