Issue 5 optional values

Now if a randomizer returns null then the field is not set. OptionalRandomizer uses this feature to either return a random value from a delegate or to return null.

Careful: this pull request also contains the pull request for issue #3. Sorry for this.