ODE check rank and null address #3981
Check if there's anything to do before trying to process an address.
When searching for address only select if matching address rank.
Also adresses #3561
fix surveys directory handling
Fix email and phone processing #3268
Contact is now determined prior to setting attributes.
Rank and type is respected where appropriate.
Also fixes #3539
Make ODE demoters respect rank
Improve search in ODE, prevent Stales #4081
Prevent errors where same address is selected for participant
and a new contact. Make find_ methods care about the person
and prevent searches for just-created people.  Further imporve
examples and remove redundancy in the spec.