Move WalletTransaction into the wallet package.
Clean up WalletTransaction and serialization code a bit.
Wallet: misc cleanups.

Clear some static analysis warnings.
Throw more appropriate exception types in some cases.
Add a few internal assertions.
Better nullity annotations.
Transaction: clear a couple of static analysis warnings.
Networking: bump default connect timeout to 5 seconds.

Improve some logging.
WalletTemplate: refresh checkpoints file.
Merge commit 'b3673999d48ef7af9ce2ff98ae891a0f9a66b9f4'
Merge commit 'f318808cf7ea9ca83eaf003ff0301321287a23c4'
Merge commit 'c5665d68b5b85a2ed5881a355abd83357737cbff'
Merge commit '1f373501613ead2dec7c1b02434e656ff63862b9'
Merge commit 'aaa539bd80506ff1d745c995ee5100159b1d9760'
Merge remote-tracking branch 'upstream/master'