Add new Serialize Method, omit TextWriter, return string

Add an overload to the `Serialize<T>` function that omits the `TextWriter output` parameter, and instead instantiates a new `StringWriter`, uses this as the output in a call to `Serialize` and returns the string directly. Useful because in many normal use cases, users might not want to have to deal with a `TextWriter` and are only interested in the resulting serialized string.