Improve performance of CB GetFirstPassWriter
Improve performance of CB GetFirstPassWriter

Some performance testing showed a regression in Compact Binary v1
performance after support for v2 was added. The biggest contributor to
the regression was boxing being done in
CompactBinaryWriter.GetFirstPassWriter.

The previous implementation of CompactBinaryWriter.GetFirstPassWriter,
when v1 was being used, was boxing a null to a
Nullable<CompactBinaryCounter> and then converting that to a null
IProtocolWriter.

With this change, the version 1 code path just returns a null
IProtocolWriter, avoiding the expensive box. The performance difference
on the test I was using is now negligible.

sapek/bond,Microsoft/bond,gencer/bond,chwarr/bond,sapek/bond,gencer/bond,ant0nsc/bond,chwarr/bond,gencer/bond,chwarr/bond,Microsoft/bond,Microsoft/bond,sapek/bond,gencer/bond,jdubrule/bond,chwarr/bond,tstein/bond,jdubrule/bond,sapek/bond,Microsoft/bond,ant0nsc/bond,gencer/bond,tstein/bond,ant0nsc/bond,chwarr/bond,chwarr/bond,ant0nsc/bond,jdubrule/bond,tstein/bond,tstein/bond,jdubrule/bond,Microsoft/bond,tstein/bond,Microsoft/bond,sapek/bond,jdubrule/bond,tstein/bond,sapek/bond,jdubrule/bond