Heavy refactoring, mostly splitting up ReadFont.

Graphics.SVGFonts.ReadFont is now responsible for font data.
Graphics.SVGFonts.Text is responsible for drawing text using a font.
Graphics.SVGFonts.Fonts has the built-in fonts.

`outlMap` is replaced by `loadFont`, which is exported by
Graphics.SVGFonts.

A number of internal functions of ReadFont are no longer exported.
Move the actual text out of TextOpts.

So textSVG' now has an extra argument, and is called as
  textSVG' textOpts text
Separate file reading from interpretation of font element.
Type alias for font data together with outline map.
Move one use of unsafePerformIO out of ReadFont.

The exported font loading function is now in IO.
Simplify use of Maybe.
Remove parse error logging via unsafePerformIO.

The errors are now carried through to higher layers in a
rather explicit manner, and logged roughly as before within
the IO monad.