Set email_contact to "" if None
Fix log-servers and slp-directory-agent

_aa_log_servers() had an incorrect error message;
_aa_slp_directory_agent() had an incorrect error message and called the
wrong validation function.
Fix some option name and grammar mistakes
Set allow to '' instead of None
Fix is_valid_domain
Allow underscores anywhere in domain names
Fix inconsistent function name

Don't worry, it's not used anywhere yet, so the change won't break
anything.
Merge branch 'master' into maintain_migrate-fixes
Add is_ip_or_domain_list; change default ip_type

Also fix is_valid_domain (again)
PEP8
Use is_valid_ip_or_domain/is_ip_or_domain_list
test_validation.py: tests IP/domain validation
Subclass TestCase instead of using bare functions
Remove superfluous parentheses
Use lambdas instead of functools.partial
Strip and split on whitespace, not just spaces
Simplify ternary expression thing
added ranges and workgroups to ctnr detail view
Remove more extraneous parentheses
Strip all whitespace in list_validator