Adding locks around some collection loops

* Issue #510 - dictionary changed size during iteration
When loading an object initialize *interface fields with defaults

Issue #509 - Sync fails to render DNS files following a replicate

Also fixes an issue where the logger object is not set when calling
the api.sync() function from the replicate module, resulting in a
stack trace
Fixing a silly goof in not using self.lock
Adding in logging of an exception generated by a kickstart parse error
Limit splitting of interface names to one dash

Issue #511 - interfaces with - in the name cause exception
Create sylink in links/ for distros during "cobbler distro add"

Issue #513 - "cobbler distro add" does not add a link to the distro
in the links directory.
Enforce the use of --interface when no interfaces are defined

Issue #526 - cobbler system add creates broken record when used
with --dns-name and no interface
Fix http check on SUSE platform. Addresses bnc#828453

On SUSE platform Apache's binary is called 'httpd2'.

This addresses one of the issues reported by bnc#828453.
Merge branch 'release24' of github.com:jmaas/cobbler into release24
Adding Flavio Castelli <fcastelli@suse.com> to the AUTHORS file
Don't assume repos exists in the object (even if it should)

Fix for Issue #535 - cobbler sync fails on "Exception value: 'repos'"
Fix for issue537: no http permissions for cobbler_web
Fix for mgmtclass pre trigger

Fix for exception caused during the removal of a mgmtclass
Fix an 'invalid input type' because some python versions interpret as unicode by default
Added qed disk driver type in Koan. Fixes cobbler/cobbler#547
Credit to dmlb2000 -- this solves exclude not working on reposync for added repos. This doesn't solve it for rhn:// repos though, that will be a separate issue. Fixes cobbler/cobbler#218
fixed styling
do not join to_addr, smtplib expects a list
joining, and then splitting when passed to smtplib may be a better method because the recipients receive [\' or \']as part of the address otherwise.
Add an ignore list so some servers can be excluded from reporting. This is useful for testing builds without spamming reports when paired with a ticketing system.