add support for VALIDATE_TRANSFORM option to check part transforms before importing them.

Many LDR dat files have degenerate rot/scale transforms specified. This can
cause issues with some 3rd party renderers. Enabling this option will suppress
all parts with invalid transforms and display an error message listing what
has been suppressed.
Add support for importing LDR as a component and scaling physically.

Set the MAKE_COMPONENT config item to true and the imported LDR file will be
placed as a component definition.

If the above is true then setting PHYSICAL_SCALE to true will also scale the
component instance so it is in real world units, IE: 8mm between the centre
of studs.

Note that the scale is only applied to the top level component instance or
the instance of an imported individual part. The underlying part definitions
are still in LDR units.
Reads all color information from LDConfig.ldr file and implements a simple color processing plugin system.

All data from the color config file is now read in and recorded. Default
materials are still created from just the value and alpha however the plugin
system can be used to define high quality materials for use by 3rd party
renderes.

Users derive a class from JF::LDraw::ColorProcessor and register it as
a color processor. When a color is imported into the model each processor is
called and passed the created material and the full config data. They can then
setup additional color data as required.
update readme for new features
change structure of color hash to be more similar to ldraw spec. generalize materail support

Rename key metadata to finish and move ALPHA and LUMINANCE into the top level.

Support MATTE_METALLIC finish

Also supports generic MATERIAL finishes rather than only speckle and glitter.
Material parameters are now arbitrary string pairs. VALUE is treated specially
and converted to Sketchup::Color
update readme
add importer options to @opts module variable rather than being global constants
add a Color class to store LDConfig data rather than using a hash
pass config option into color processors
update readme
Split out plugin system to a separate file.

Renamed ColorProcessor to ColorPlugin and renamed process method to import.
updated readme
make value_to_color a class method, document using rdoc format
add part plugin system

users can register a plugin that is called on part import to supply custom
part definitions.

there are 2 phases to this

1. When importing PartPlugin::import is called giving the plugin the chance to
import a custom definition for a part.

2. After import PartPlugin::post_import is called giving the plugin the chance
to modify an imported part. This is called for all parts whether they are
sourced from a plugin, SKP file or DAT file.

Note that are called for parts only, not for models.
update readme