more robust plist parsing, and better error handling

hdiutil can output DMG agreement information before the output plist
xml, and our plist parser was choking on that text before the xml
started.

so now we scan to the beginning of an xml document before trying to
parse the xml.

also added much more explicit error handling around the plist parsing,
to hopefully catch related and future plist-related errors.

refs #914
Merge pull request #1462 from phinze/smarter-plist-parser

more robust plist parsing, and better error handling