Finally fixed the bug which caused threads to hang after exceptions while
opening URLs.  Added some documentation since the code is getting a little
ugly after all that debugging.