Merge pull request #642 from FullName/dht_handle_sendnodes_unify

Unify most of handle_sendnodes[_ipv6]() into a common core.
Merge branch 'add2lists_forward' of https://github.com/FullName/ProjectTox-Core into FullName-add2lists_forward
Code cleanups.
Optimized data sending slightly more.
Started as a simple bugfix for wrap(), expanded to more detailed help.

nTox.c:
- flag[]: additional flag for special wrapping
- help expanded and split (to keep below 256 chars)
- new_lines_mark(): stores flag for special wrapping
- print_friendlist():
.  - extracted pattern for output
.  - added length of id string allocation
.  - replaced '\t' with '+ ', wrappers don't account for '\t'
- line_eval():
.  - removed a few do_refresh() directly after a new_lines() (calls do_refresh() at its end)
.  - 'h' (help): parsing of an additional character for f(riend) or g(roup)
- wrap():
.  - the major bugfix:
.    - no more endless looping if the input had a substring with no spaces
.      for more than line_width (e.g. ID of 78 and window smaller than 78)
- wrap_bars(): wrap() for "rich" messages, honors embedded '\n', breaks preferable at '|'
- print_help(): listed all options and added explanations
- print_invite(): fixed minuscule typo
- main(): made print_help() reachable again

nTox.h:
- majorly cut down to what is really needed
Merge branch 'master' into harden

Conflicts:
	toxcore/DHT.c
Added more printing to DHT_test, fixed typo.
Fixed small issues.

DHT_test now only prints non zero entries.
Fixed test.
Merge pull request #643 from FullName/nTox-patches

Started as a simple bugfix for wrap(), expanded to more detailed help.
nTox.c:
- multiple places: tox_getname() doesn't terminate the string, make sure nTox does
- format_message():
.  - renamed to print_formatted_message()
.  - changed semantics: does the new_line() itself, saves caller from freeing the buffer (which no caller did)
.  - changed signature: now also prints the friend's name when sending
.  - intern: date is only printed once, the message line gets only time
- print_message(): enforce null termination
- main():
.  - setlocale() to init locale (for date/time printing)
.  - own name: ensure null termination

Messenger.c:
- notify of friend name change *before* the old name is overwritten
Merge remote-tracking branch 'upstream/master' into nTox-patches
Fixed possible segfault.
Undo faulty newlines, undo extra newlines.
Group chat: Add a nickname message. Remove strange default nickname. (Seriously...)

group_chats.*:
- group_send_nick() to send own name
- setnick() to store a received name

Messenger.c:
- group_send_nick() before group_sendmessage() (in regular intervals, to inform new peers)

nTox.c:
- print_groupmessage(): on error or on a name of length zero the result of tox_group_peername() isn't null-terminated, catch that
Merge pull request #645 from FullName/nTox-patches

nTox: enforce friend name null termination, reduce memory loss, allow nickchange as oldname=>newname
Merge branch 'group_peername' of https://github.com/FullName/ProjectTox-Core into FullName-group_peername
Cleaned up the code.
Add a "conversation mode", where you set your conversation partner once and then all non-commands are sent as message to them.
/cf # rsp. /cg # sets, /cr resets target

Also reformatted display of sent group message slightly to look less beta-ish.
Then using "#<num>" for group number vs. "<num>" for friend/peer numbers.
Also changed to a slightly different message on people without name.
IPv6 address of ::1 is local.