Added a TestObjectBuilderBuilder class - curently just creates a new class with same properties as class passed in.
TestObjectBuilderBuilder now produces a sub class of TestObjectBuilder.  Implemented a simple Build() method in TestObjectBuilder that will just instantiate the product class using the zero argument constructor.
Break long line into two.
Add method to initialise builder properties when builder is constructed.  Use generics instead of passing in type to TestObjectBuilderBuilder.
Refactor TestObjectBuilderBuilder to use generics instead of passing a type variable around.
Add method to initialise product properties after instantiation.
Only add properties to builder if we're able to set them on the product.