buffer handling fixes
- IceGetHeaderExtra: only include extra space in outbufptr if there's room
- Refactor Fatal I/O error handling into a common function
- IceFlush: signal fatal I/O error if bufptr is past end of buffer
- ICEmsg.h: Add static asserts that message header length <= ICE_OUTBUFSIZE
- Handle arrays too large to fit in iceConn buffers