General work on canfix protocol stuff.
Change protocol.py to use etree instead of minidom

This is to make it more consistent and more pythonic.  We used
etree for the device XML files too so this one got changed.