Descriptor.diff() fails nicely when undefined passed in
Descriptor.diff() fails nicely when passed unsupported primitive
Descriptor.diff() fails nicely when passed unsupported object
Descriptor.diff() doesn't fail when passed a Value object
Descriptor classes don't check signatures when converting
INTEGRATE: Descriptor.diff() handles variety of invalid parms

* dev:
  Descriptor classes don't check signatures when converting
  Descriptor.diff() doesn't fail when passed a Value object
  Descriptor.diff() fails nicely when passed unsupported object
  Descriptor.diff() fails nicely when passed unsupported primitive
  Descriptor.diff() fails nicely when undefined passed in