Always make badge shortname the pk if available

The various openbadger APIs don't always return shortname in the badge object
itself (sometimes, the shortname is a key to a badge object), but if we have
the shortname, it should be the badge's id.