Handles generic content type writers and readers

BuiltInContentWriter generates the correct typename for the generic content reader.
ContentWriter adds generic type arguments to list of referenced types.

Includes a slightly-modified version of @RayBatts addition to ContentCompiler.GetTypeWriter() from #1322.