pidgin/pidgin

Create PurpleIRCv3Capabilities for managing capabilities for each connection

This implements everything in capabilities version 302 except for handling the
NEW and DEL commands from the server. I'm not sure how we can test that yet,
so we're ignoring it for now.

After the server has told us about all of the capabilities it supports, we
explicitly request cap-notify which we implictly request when we send
CAP LS 302. This is mostly to test our code and might be removed in the future.

Testing Done:
Connected to my local ergo and used ngrep to verify that everything was being sent correctly.

Reviewed at https://reviews.imfreedom.org/r/2100/
Björn Voigt <bjoernv@arcor.de> Björn Voigt <bjoern@cs.tu-berlin.de>
Björn Voigt <bjoernv@arcor.de> Bjoern Voigt <bjoern@cs.tu-berlin.de>
David Woodhouse <dwmw2@infradead.org> <David.Woodhouse@intel.com>
David Woodhouse <dwmw2@infradead.org> <dwmw@amazon.co.uk>
David Woodhouse <dwmw2@infradead.org> dwmw2 <dwmw2@infradead.org>
# not sure how to make this one work because this doesn't do it..
dequis <dx@dxzone.com.ar> dequis <dx@dxzone.com.ar
dequis <dx@dxzone.com.ar> dx <dx@dxzone.com.ar>
Eion Robb <eion@robbmob.com> Eion Robb <eionrobb@gmail.com>
Elliott Sales de Andrade <quantum.analyst@gmail.com> Elliott Sales de Andrade <qulogic@pidgin.im>
Elliott Sales de Andrade <quantum.analyst@gmail.com> Elliott S <quantum.analyst@gmail.com>
Ethan Blanton <elb@pidgin.im> Ethan Blanton <elb@fiji-systems.com>
Ethan Blanton <elb@pidgin.im> Ethan Blanton <elb@kb8ojh.net>
Gary Kramlich <grim@reaperworld.com> <grim@pidgin.im>
Jerin Philip <monu1618@gmail.com> Jerin Philip <jerin.philip@students.iiit.ac.in>
Jonathan Champ <jrchamp@ncsu.edu> Jonathan Champ <royanee@users.sourceforge.net>
Jorge Villaseñor <salinasv@pidgin.im> Jorge Villaseñor <masca@cpw.pidgin.im>
Mark Doliner <mark@kingant.net> Mark Doliner <markdoliner@pidgin.im>
Matěj Cepl <mcepl@cepl.eu> Matěj Cepl <mcepl@redhat.com>
Michael McConville <mmcconville@mykolab.com> Michael McConville <mmcco@mykolab.com>
Michael McConville <mmcconville@mykolab.com> mmcconville@mykolab.com
Mike Ruprecht <cmaiku@gmail.com> Michael Ruprecht <maiku@pidgin.im>
Richard Laager <rlaager@wiktel.com> Richard Laager <rlaager@pidgin.im>
Robert Vehse <robertvehse@fastmail.fm> Robbie <robertvehse@fastmail.fm>
Shalom Craimer <scraimer@gmail.com> Shalom Craimer <s.transifex2015@craimer.org>
Tomasz Wasilczyk <twasilczyk@pidgin.im> Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
Yngve Spjeld Landro <l10n@landro.net> Yngve Spjeld Landro <nynorsk@strilen.net>