Fix the gEDA (pcb) backend

These commits contain a refactoring of the gEDA backend, and fix issues with `Footgen`:

* The `qfn` method is fixed (previously the horizontal and vertical pads did not have the correct
   extents)
* Adds `silk_circle` and `silk_arc` methods in the gEDA backend, preventing errors when using certain
  generator methods with the gEDA backend.
* Corrects the placement of the circle marker in the silk-box (if it breaks the kicad backend, I will fix the   
  issues, which are related to underspecification of the generator backend interface, I had to guess as to the
  meaning of some parameters)
* I have not yet checked the `silk_arc` method for `geda.py` is doing things correctly in all cases,
  so it might have to be fixed.