Properly split long IRC messages

This pull request adds handling of long IRC messages to the core. In contrast to the "splitlong.pl" plugin, multi-byte encoded and recoded messages are properly split.

To allow for this, a new function has been added to the server struct: "split_message". "split_message" returns a string array with the message splitted to substrings of a length that the server can handle. If a protocol module doesn't have any limit, it can simply return a singleton array with a copy of the message.

The "MSG" chat command now calls "split_message" before "send_message", and emits "message own_public" / "message own_private" with each substring, so that the string splitting will be visible in the UI.

"split_message" in the IRC module uses "recode_split" which in turn uses iconv to properly split multi-byte encoded (and recoded) messages.

This pull request also adds two new settings: "split_line_start" and "split_line_end", analogous to "splitlong_line_start" and "splitlong_line_end" in "splitlong.pl".

This fixes issue #1.
Alright, I understand now. "target" is NULL when "parse_special" fails. We still need to signal "message own_private" so that "sig_message_own_private" in "src/fe-common/core/fe-messages.c" prints an error message. There's no need to split "msg" in this case because nothing gets sent to the server. (In fact, currently it doesn't matter at all what "msg" is on line 395, because none of the signal handlers uses it when "target" is NULL.)