In order to support non-Master's Programs in Registrar, we need to make the key field on the Program model optional, as non-Master's programs will not likely have an external key. Those Programs will be referred to by their Discovery UUIDs.
Key field on the Registrar Program model is optional.
All Registrar views that accept a Program's key should also accept the Program's Discovery UUID.
There is some prior art in the handling of courses with internal and external course keys.