internal/v4: add viewbox to icons that do not have one

Some web browsers require a viewbox, but not all icon.svg
files have one. The standard library's encoding/xml package
does not cope well with name spaces, so we use a temporarily
forked version with fixes.

We could be more efficient when processing icon.svg files
that already have a viewbox, but since icons will be cached
anyway and it's reasonably efficient, we use the simplest approach.

This is an updated version of PR #235