Added two test cases for the behavior of YAXType attribute
Added test for duplicate aliases for YAXTypeAttribute
Handles YAXType in an element
Added a Self Referring Sample class that will lead to stack overflow exception upon serialization
Refactored Serializer to call `NewInternalSerializer` and `FinalizeInternalSerializer` whenever a new internal serializer is needed
Added loop detection capability to the serializer

so that an identical object is serialized more than once an instance of
`YAXCannotSerializeSelfReferentialTypes` is thrown
Fixed the loop detection mechanism
Added test case to test that repetitive references in an object is not necessarily a loop.
Added a test case that a self referring type (e.g., linked-list) that does not cause a loop, should be serialized
Added comments to the sample
Added unit test for the case that a Self-Referring-Type-Is-Not-Necessarily-A-Self-Referring-Object
Added more unit tests around self referring types/objects that throw exceptions
Added an option to allow not serializing references that cause cycles in serialization
Added an example for infinite loop with calculated properties.
Added a constructor overload that accepts type and serialization options
Added the option to ignore properties with no setter
Added unit tests for testing the DontSerializePropertiesWithNoSetter
Added the support to specify MaxRecursion to prevent unwanted infinite loop/recursion
Added tests for MaxRecusion
Updated DemoApplication to set the MaxRecursion