many changes

*private/internal serialization for properties/fields that are marked
with the YamlSerializer attribute
*moved some classes into their own files
should have been a part of the last commit