Changed the EMail and Phone pojos constructors to remove use of the
primary flag. That is actually only important in the context of the
Person entity, not within the Phone or EMail.

Starting an experiment to model these elements as immutable.
Removed the concept of primary from the Phone and EMail value objects.
Went over to only static constructors for Value Objects.
Changed EMail to EMailAddress
Added Program and ProgramTest
Added the generation of more detailed program instance.