Important stuff:
- our I/O operates on raw fds. we should use fde_t's everywhere so that
  lookups are less necessary and so that I/O is done using the virtual functors,
  IOFuncRead and IOFuncWrite.
- implement comm_get_io_direction(fde_t *) and use it to determine how to reschedule
  I/O direction when needed.

Some of this may not be possible to do in 2.3...

- go TS6 only? [partially done; TS6 is always enabled now]
- client.c, channel.c is very 2.8 style still. it'd be nice to pack them into their own namespace and 
  such. moreover, the other 2.8 code needs similar rewriting/reworking too...
- internally split out +o/+v "ranks" into a series of permissions. this could allow for configure-defined 
  special access levels, halfops, etc. (would need to match globally, somehow. extra SVINFO param?)
- somehow hide channel operators like ircnet can do?
- SASL opering?
- link failover?

--
$Id: IDEAS 3552 2007-08-09 06:50:13Z nenolod $
