Build DFP Data Hydrator

This is largely a refactor of current code to make it more coherent and maintainable.

Now there are no references to DFP's own data objects beyond the DFPDataHydrator.  The hydrator produces more usable objects that are then processed in the DfpDataExtractor.

This change also exposes more targeting data.  All the custom targeting is available, and also geotargeting data.