memory usage optimizations for read and write operations

1. Since no deserialization is happening here, I prefer to rename this variable name + the struct name + the field in TableWriteState to something like ```ColumnBlockDataBuffer``` and ```blockDataBufferArray``` (emitting column to make the name a bit shorter, as we've done in some other places) . We've use this naming in the function ```CreateColumnBlockDataBuffers()```.
2. This line gives a warning because of mixed declarations and statements. We should move the ```DeserializedColumnBlockData **deserializedColumnBlockData``` to somewhere in the beginning of the function.
3. After these changes, we can move the call to ```CreateColumnBlockDataBuffers``` to the same line as assignment.
4. We've put a comment before other blocks of this function, so I think we should put a comment before ```columnMaskArray = ...``` too.