better cleanup sockets in Channels

- use ioloop.close(all_fds=True)
- ensure socket is closed
- no longer need override of stop in any Channel subclass
close control socket in KernelManager.shutdown

avoids leaking FDs
Merge pull request #4890 from minrk/cleanup-channels

better cleanup channel FDs