Argument type validation with user-friendly error messages

`OrderedDict` is not available in the Py26 stdlib, so the build is failing. I believe the ``uuid.UUID`` type is consistent across Pythons. Perhaps you can test against that instead.