Add missing validations and an availability API endpoint
Previously some resource types were not validating requests for uniqueness (the creation would have failed later, at database commit time). The availability API allows unauthenticated callers (i.e. everyone) to query for existence of a specific resource, or resources that would conflict with it in the global namespace. It's basically a public validation check, meant so that applications that let users create accounts can provide early feedback on availability.