Another batch of change from Google...

... including:

   * Optimizations for factories with no dependencies
   * Refactoring to abstract out a graph representation
   * Some suppression of gwt-incompatible (dagger1) stuff to ease useage with gwt
   * Tweaking `@Module` processor for dagger1 so it is less strict (since dagger2 ignores library/complete)
   * Remove the logging done for null-returning providers.  
      - Turns out it was too expensive - lots of I/O.
      - We want to disallow Providers from returning null, but we have a billion Providers which do because Dagger1 didn't hold it off - we'll figure out a different approach to migration. 
   * Enable the `@Component` processor using `@AutoService` rather than requiring explicit build system config.