Reduce SVG output size by using CSS and paths

This commit series obtains a reduction of the output SVG size by a factor of 7, by enacting the following changes:

* using CSS instead of tag attributes for colors and opacity; this, by itself, is enough to reduce the SVG size by about 30% to 50%, depending on whether colors have an alpha channel or not;
* using a single `path` instead of a number of `rect`s to describe the ‘foreground’ of the QR Code; this is true gainer (7× size reduction).

As a bonus, there is a patch that makes the SVG ‘dimensionless’ when the DPI is set to 0. I also needed autogen.sh to create the `m4` directory, so I've included a patch to do that.