core: add shared strings to reduce memory usage

Shared strings are stored in a hashtable with pointer for keys (values are not
used).

The key has a reference count + the string.
The initial reference count is set to 1 and is incremented each time the same
string is asked.

When removing a shared string, the reference count is decremented.
If it becomes 0, then the shared string is removed from the hashtable (and then
the string is really destroyed).
core: add support of shared strings in split of strings (add functions string_split_shared and string_free_split_shared)
core: use shared strings for tags on lines

It can reduce by about 30% the memory used for lines in a buffer.
core: add commment in function string_shared_get (returned value must not be changed)
core: use shared strings for prefix on lines

It can reduce by about 10% the memory used for lines in a buffer.
core: use shared strings for groups/nicks in nicklist
doc: remove "required" for password option in command "init" (relay protocol)
Merge branch 'master' of git://git.sv.gnu.org/weechat
core: add option weechat.look.day_change_message2

The new option weechat.look.day_change_message2 is used to display day change
between two messages, with two dates: the new one, and the old one.

Example:

-- Mon, 02 Sep 2013 (Thu, 22 Aug 2013) --
core: add option weechat.look.day_change_message2 in file NEWS
core: update german translations
doc: update polish FAQ and scripting guide
Merge branch 'shared-strings'
core: fix computation of columns in output of /help (take care about size of time/buffer/prefix)
core: update polish translations
Version 0.4.2-rc1
core: rename options weechat.look.day_change_message(2) to weechat.look.day_change_message_{1date|2dates}
translation: update
Merge branch 'master' of git://git.sv.gnu.org/weechat

Conflicts:
	po/ja.po
translation: update