First round of Directive Clean-up

The code that belonged in DefaultDirectiveFactory was in
AbstractModule, because I did not quite understand the
Module.directive() method earlier. Cleaning up.