The .NET DefaultValue attribute is now respected

- Properties with the .NET component model DefaultValue and matching
  values will no longer be serialized unless EmitDefaults is on
  (previously only properties with null or zero were ignored).
- Moved the default exclusion mechanism from
  DefaultExclusiveObjectGraphVisitor to the traversal strategy, since
  visitors have no access to property attributes (it seems more correct
  as well).

Note: depends on pull request #24