Rewrote the menu parser with BeautifulSoup.

Much simpler and more robust now. Also doesn't use try/excepts as a
way to ignore errors anymore - at least in that task