refactor-864370: Allow types without inheritance
refactor-864370: Allow types without inheritance

Having to inherit from a type exported by GCLI is annoying because it
means a require step, and some fragility from inheritance. We have done
some work to allow a JSON like declaration of a type (much like how a
command is implemented) but previously it was only of any use if you
wanted to 'extend' the selection type. This change is more consistent
about copying properties allowing the implementation of any time using
a JSON structure.

Signed-off-by: Joe Walker <7a17872fbb32c7d760c9a16ee3076daead11efcf@mozilla.com>

joewalker/gcli,mozilla/gcli,mozilla/gcli,joewalker/gcli,mozilla/gcli