Using reflection to merge two objects. The second prevails over the first, the rules are:
- All present values on the second object must prevail over the first one.
- The values null on the second object must be filled with the value of the first one if present.
The result is a third object merged with the rules above.
This exercise is explained on: http://www.joantolos.com/blog/mergeobject