changed field types in some structures to equivalent unambiguous types

int -> int32_t
unsigned int -> uint32_t
unsigned chat -> uint8_t

Thus the implementation becomes not only unambiguous, but also more compliant with the [protocol specification](https://en.bitcoin.it/wiki/Protocol_specification).
Just looked over this for one final time and noticed that here you change the prototype but not the function definition itself (in core.cpp)!
I'd suggest to change these back to int, as the nIndex parameters for `*MerkleBranch`are not directly associated with fields on the data structure that are serialized.