Refactors.
Fixes a bug in WebUtility that was causing the request to fail because ContentLength had not been set.
I/O has been flaky. Often a write will result in a zero-byte file and an exception. This tends to wipe out existing data. Therefore when writing smaller files, write the data to a temp file and delete/rename.
Cleanup