Fix block scalar double newline bug in emitter
Block scalars (literal | and folded >) were producing a blank line
between the scalar content and the next key because write_scalar
added a trailing newline and the caller also added one.
The fix makes write_scalar return a bool indicating whether it
already wrote trailing content, and uses a dedicated
write_block_scalar_indent function for proper content indentation.
Added tests to verify no double newlines in block scalar output.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>