Refactoring eval() code in buildGuideItem

Hey,

eval() is considered a little poor form so I've replaced it here with an ItemFactory for generating the appropriate classes from the mime data strings. More details in the commit messages.

Hope it seems ok,
Michael

ps. Cheers for the doc strings. Useful stuff.