Fix for issue #18

Changes the regular expression used to validate a generic collection
type name to something much more lenient. This ends up accepting
identifiers that would not be accepted by the C# parser, but that is
fine as the invalid identifiers will still get rejected at compile time.