Adding *ShouldSerialize* ability to YAXLib

I was swapping out the default .NET Serialiser for YAXLib however the code was using the ShouldSerialize pattern to perform conditional serialization logic. So I decided it was easier to add that logic to YAXLib.

Added a few unit tests and fixed a couple of existing unit tests

Also I apologies for this commit, it seems visual studio probably changed the line endings so GitHub thinks all the file contents has changed when its only a few lines here and there. 

If you know how I can fix this, I'll happily do so.