Large XML engine update

I've finished work on the new XML format for macro files, which required
a number of new features in the recently built XML engine.  Off the top
of my head, those features include: improved validation of PD-specific
XML files, support for writing tags with attributes, support for reading
tags with attributes, performance updates.

I believe the XML engine is now (mostly) ready for tackling a number of
XML-related issues, including #67, #68, #75.
Update convolution filter test files

Now with improved validation entries
Improved validation when loading custom convolution filters from file
Give the user a better warning when loading outdated convolution filter files
Updated test macros (using new XML format)
Convert macro engine to use new XML-format macro files

Everything should be working for both large and small macros (e.g.
single-items ones).

Note that this commit raised one issue: #76.

As part of the update, I improved a bunch of macro-related behavior.
Useless macro entries are no longer written to file.  Tons of legacy
code has been removed.  Also, the user is given a descriptive warning if
they attempt to load outdated macro files.