Adds the source generator (SerializerIncrementalGenerator) which currently does the following:
finds types that have the marker attribute
validates them to ensure they meet the criteria
if they do not, emit a diagnostic
currently it also generates a basic utility class that outputs valid types, however this is not currently used anywhere (and will be removed once we start adding the actual source generation).
Also adds unit test project that tests various error cases to ensure that they produce the correct diagnostic.
Adds a stub project for generator integration tests. doesn't do anything currently, but is set up correctly to use the source generator