fixes PowerDNS/pdns#650

The attached patch changes the distributor code in the following ways:

1) Remove (as far as i can see) unused functions which allow for the fetching of the answer from an answers queue. I struggle to understand why this would ever be useful compared to having a callback; it also reduces code complexity and removes some locks. Also allows (2):
2) Split into 3 classes - the new ones being SingleThreadDistributor and MultiThreadDistributor - removes some of the conditional statements. It also means that in distributor-threads=1 mode, NO additional distributor threads are forked (unlike the existing code), and the class will also use less memory and generally be more efficient.

This has been tested in that the pdns server starts up and answers questions correctly in both modes, it's more of an RFC attempt to clean up the code a bit.
rebase to HEAD
Merge branch 'master' into so-reuseport
Merge branch 'so-reuseport' of ssh://github.com/mzealey/pdns into so-reuseport
more changes
Merge branch 'master' into split-distributor
Remove AnswerData.created time field as it doesn't seem to be referenced anywhere and the time() call seems to take about 1-2% of process time under high load.
prevent duplicate slave notications caused by different ipv6 address formatting
aviod address truncation in doNotifications
add toMasks and clear to NetmaskGroup class and use it
add only-notify option
fixes #454
closes #778
partial fix #949
add also-notify option
fixes #949
catch ComboClass exceptions in communicator
Merge branch 'master' into so-reuseport
merge with origin
merge from master
update pdns.conf
Move lua check to separate macro
Move polarssl check to separate macro
Move botan checks to separate macro