updated discriminated unions
renamed generic type arguments to generic type parameters.
Added new tests and testdata.
modified list extensions to work on list instead of IList.
moved the accesability modifier of a typescript functionsignature to the typescript function.
Let the typescript syntaxwriter handle the indent based on if it is the first write.