Unique identifiers

The new `cork_unique_id` type represents a unique identifier that is visible at compile-time.  You can use these identifiers as keys for extensible points in a plugin system, for instance; the identifiers themselves will be unique within a given execution of the program, and they'll each have a name associated with them to help produce useful debug and error messages.