Inversion of Control for smtpd.Server

Allow more control over how Server is instaniated so that it can be unit
tested.