Comments and clarifications on the receive loop, no change in functionality.
Clarify that empty transaction payloads are not allowed

Previously they were not explicitly disallowed, but if they were sent
we'd be in trouble since ReceiveTransaction() would return 0, meaning
connection closed.
Clarify TLSSend() and SendTransaction() semantics.
Removed 'towrite' superfluous variable.
Mostly beautification.
wrapping
Beautification again, no change in functionality.
Fix very old code, if read is partial (n_read < toget) this would write garbage.
Partial transactions received should result in error.

Keep this for some time in master, if it triggers in any platform then
TLSRecv() will have to use a loop, just like RecvSocketStream().
Clarify that TLSRecv() *will* return less than what was requested, if the TLS record that was sent was smaller.
len is better as a signed int now that all proper checks are being made - fixes -Wextra compiler warning.
Satisfy -Wextra warnings by converting 'got' to unsigned type and checking for overflow.
Merge pull request #1949 from jimis/TLSRecv_clarifications

TLSRecv clarifications