many changes. fixes bugs, adds methods, adds cli args

some of this hasn't been tested sufficiently.

Koike.pm
- adds legal stuff
- adds cloning capability to Koike.pm
- makes default material color grey/taupe
- adds --gcode command-line arg to override possible svg default
- fixes color setting bug in command-line parsing
- makes 'protocol' set/get accessors take up minimal lines space
- adds get_shifted_bounds() method to Koike.pm. returns bounds list
- fixes set_rectangular_material_bounds(). was hastily added before.
- fixes some svg syntax errors
- reorganizes gcode_linear_motion()
    - gcode cutting commands aren't about verbosity, so fixes this.
    - adds verbosity/brevity support to gcode arcs code
- adds dump_part() to Koike.pm.  Prints whole set in gcode. a hack.
- adds wipe_list() to Koike.pm, to remove all added parts.
- adds debug_level_sufficient() which returns true if passed integer
  corresponds to a debug level that will generate output.
- adds use_stderr() which makes STDERR the channel used by p().

Koike/Part.pm
- adds legal stuff
- makes the use of merge() more intuitive (to the author).
- adds reverse_merge() which is what merge() used to be. symantics...
- merging parts is more sensibly managed now.
- adds start_coords() and end_coords() which return x,y pair of first or
  last coordinate pair of part, respectively.
- add first_command() and last_command() which return what one would
  expect.
- adds reposition() which is is just like translate() but shifts to
  absolute coordinates rather than adding a vector to present coords.
- adds some debugging stuff.  translate() is confusing under some
  circumstances.  how to best manage starting coords?
- reduces debugging output a touch.
- stops update_position() from relocating startx,starty except when used
  interactively
- fix some ambiguous perl syntax
- adds dump_part() for debugging. this is nice.
- adds mnum() which is yet to be used. for internal use only, massages
  number format.