Allocate receive buffers in on the fly
Add CMutableTransaction and make CTransaction immutable.

In addition, introduce a cached hash inside CTransaction, to prevent
recalculating it over and over again.
Code simplifications after CTransaction::GetHash() caching
Merge pull request #4381

806fd19 Allocate receive buffers in on the fly (Pieter Wuille)
Merge pull request #4309

d38da59 Code simplifications after CTransaction::GetHash() caching (Pieter Wuille)
4949004 Add CMutableTransaction and make CTransaction immutable. (Pieter Wuille)
replace 3 separate calls to WSAGetLastError() with 1
convert an if to an if else in ConnectSocketDirectly()

- as the second clause will never be true, when the first is true