If a marker is null, it won't be written. For all other strings,
they'll be written as they are, including the empty string.
This enables nicer output for languages that don't have begin/end
markers for doc comments, such as Python.
This CL introduces the code generation tools in analyzer, but leaves analysis_server
untouched. In a later CL, after a new version of analyzer has been
published, I'll refactor analysis_server to point to these tools and
remove the corresponding code from analysis_server.
R=scheglov@google.com
Review URL: https://codereview.chromium.org/1411153007 .