components: preserve them over import and export.

UFO component handling.

This is aimed at part 1 of the comment in issue 298:
https://github.com/metapolator/metapolator/issues/298#issuecomment-63084752
    "roundtrip: make sure that components from imports end up in the skeleton layer. Make sure that components from the skeleton layer end up in the exported UFO. No need to detect circular dependencies here."

Specifically I have tested with the following and the chain of component references is preserved in mpout.ufo from 
the components.ufo sample file.

    $ alias mp=./metapolator
    $ rm -rf /tmp/mptest; mp init /tmp/mptest
    $ mp import ./data/fonts/test/components.ufo  /tmp/mptest/components2
    $ mp export /tmp/mptest/components2 /tmp/mpout.ufo


strings and also the `Transformation` instances are "immutable" (at least conceptually) so it is enough, as long as we need no setters, to map them in the cps_whitelist like so:
```
 _p._cps_whitelist = {
    baseGlyphName: '_baseGlyphName'
  , transformation: '_transformation'
}
```