Implement a parser for ircv3 and add unit tests to it.
This change got pretty big so I didn't implement unescapping tags yet. I did
however put the unit tests in for escaped tags, but they are currently #if 0'd
out.
The unit tests are based on the msg-split test cases from https://github.com/ircdocs/parser-tests/blob/master/tests/msg-split.yaml
Testing Done:
Ran the unit tests.
Bugs closed: PIDGIN-17585
Reviewed at https://reviews.imfreedom.org/r/1874/
# UPDATING VERSION NUMBERS FOR RELEASES
#
# The version number is:
# <major>.<minor>.<micro><extra>
#
# micro += 1
#
# If any functions have been added to libpurple, Pidgin, or Finch:
# micro = 0
# minor += 1
#
# If backwards compatibility has been broken in libpurple, Pidgin, or Finch:
# micro = 0
# minor = 0
# major += 1
# purple_soversion += 1
#
# extra should be similar to one of the following: