markdown: Stream and parse incrementally in fetch_open_graph_image.
markdown: Stream and parse incrementally in fetch_open_graph_image.

This way we can stop reading as soon as we get to the body.  Also,
send an Accept header, check that the request was actually successful,
use lxml.etree.iterparse instead of a broken hand-rolled state
machine, and support XHTML, all for negative 28 lines of code.

Signed-off-by: Anders Kaseorg <dfdb7392591db597bc41cf266a9c3bc12a2706e5@zulip.com>

zulip/zulip,eeshangarg/zulip,rht/zulip,rht/zulip,kou/zulip,eeshangarg/zulip,zulip/zulip,rht/zulip,kou/zulip,andersk/zulip,zulip/zulip,andersk/zulip,rht/zulip,kou/zulip,andersk/zulip,zulip/zulip,rht/zulip,zulip/zulip,kou/zulip,eeshangarg/zulip,eeshangarg/zulip,zulip/zulip,andersk/zulip,eeshangarg/zulip,andersk/zulip,zulip/zulip,kou/zulip,kou/zulip,eeshangarg/zulip,eeshangarg/zulip,rht/zulip,andersk/zulip,rht/zulip,andersk/zulip,kou/zulip