Major cleanup, mostly from the results of static code analysis and trying to get the downloads to be reliable when there are more than one of them going at a time.

Seems it may be related to the java nio socket implementation, but I'm not positive on that at the moment.

MessageTransceiver.java:380 is catching IOExceptions thrown from the MessageIOGateway unflatten() method. I suppose it's possible it's due to thread hopping if nio is using threadlocals.