Tahoe DCC support

(Sorry it's all in one commit. I messed up badly.)
python-magic required for DCC support
Tidy up a bit; stream instead of buffer.