Prevent socket leak in ThreadSocketHandler.

When we are over our outbound limit ThreadSocketHandler would try to
 keep the connection if the peer was addnoded.

This didn't actually work for two reasons: It didn't actually run
 the accept code due to mistaken code flow, and because we have a
 limited number of outbound semaphores it couldn't actually use the
 connection.

Instead it leaked the socket, which might have caused issue #4034.

This patch just takes out the non-functioning white-listing for now.
Correct some proxy related socket leaks.
Merge pull request #4037 from gmaxwell/fdleaks

Prevent socket leak in ThreadSocketHandler.
Split up CheckBlock in a block and header version
Split AcceptBlockHeader from AcceptBlock.

Also modify some connection logic to deal with non-full blocks in the index.