tox: Add a separate hash table for requests
tox: Improve pending-requests property

Make it really read-only, and use the hash table for requests in the
getter.
tox: Notify 'pending-requests' changes

Every time the number of items in the requests hash table changes we
must notify that the pending-requests property has changed.
window: Show and hide the Requests button

Only show it when we have open requests and hide it otherwise.
window: Show number of pending requests

Show the number of pending requests on the Request button.
tox: Use signals for adding and removing contacts
chat widget: Don't g_object_ref tox and contact

It is assured that we destroy the chat widget once contact/tox are
destroyed.
window, tox: Improve some debug messages
tox: Keep contact alive when moving

We need an extra g_object_ref() call on contact here before removing it
from requests_ht or we lose it.
contact: Add preferred-name property

And use in the chat widget. It always returns either the name of the
contact (if not empty) or the Tox ID as a hex string. In both cases the
returned string has a max length of 12 (UTF-8) characters.
tox: Don't change our name if tox_set_name failed

This was inconsistent, because the widgets then showed a name different
from the real name in the Tox instance.