IE11 support on 1.7

There were substantial infrastructure and robot changes to DOH in 1.8. They are necessary to get the tests running smoothly in 1.7 under IE11. A lot of the 1.8 code is promise-based so I simplified the code to use legacy deferral code where possible.