Treat .NET properties the same way as F# ones

Fix #289.
Pass snapshot around to be robust against text changes
Merge pull request #420 from dungpa/print-dotnet-properties

Treat .NET properties the same way as F# ones while implementing interfaces
RecordStubGenerator properly generates stubs for records with RequireQualifiedAccess attribute
extract common code to CodeGeneration file
clean up namespaces
Update README.md
fixed: DocumentEventsListener does not call update() after very first event
Merge pull request #427 from vasily-kirichenko/fix-doc-events-listener

fixed: DocumentEventsListener does not call update() after very first event
Merge pull request #425 from vasily-kirichenko/fully-qualified-records

RecordStubGenerator properly generates stubs for records with RequireQualifiedAccess attribute