first step in refactoring the Sham\DataGenerator

The DataGenerator grew a bit large and the fake data generation was a big
switch case block for each known and supported field type. The single
strategies to generate fake data for a specific type have now been
extracted into methods.

The TODO item was added as it seems, that references and aggregate do not
trigger change events upon changes to those fields.
Final non-static refactoring of DataGenerator

You can now get an instance of the DataGenerator class and use it in a
non-static way. The static helper methods are still available to ease the
use. The protected static methods are now non-static.