Add unit tests.
Fix spelling
Fix crash in resolver when trying to resolve the warning-id PrimitiveExpression within PreprocessorWarningDirective.
Fix resolving "class Test : Base<Test.Inner> { public class Inner {} }".

The protection against infinite recursion when resolving base types was implemented in the wrong place and caused the resolve error to be cached.
Fix crash when lifting a user-defined operator in a generic struct.
Fix processing of explicit conversions.

Explicit conversions could get processed twice, once in VisitCastExpression, and once in the parent expression.
This was causing problems with FindReferences and with CS0029InvalidConversionIssue.
Fix C# parser crash on "new int[sections.]"
NewLineNode is no longer abstract, so code outside of NRefactory can instantiate it.

The old concrete UnixNewLineNode was internal and couldn't be created outside of NR.