Fixes: Recursive field - Stack Level Too Deep Exception

When defining a recursive field on a message object, the
original code would get caught in an infinite loop and
eventually throw a Stack Level Too Deep exception. To
address this case, a conditional check has been added to
the initialize method on the Message class to detect if the
current field's class is equal to the class of the Message itself.
If not equal we proceed as always, otherwise skip initializing
the field with a default value.