The patches allow the current trunk of Thrift C++ to
build without warnings in Visual Studio and GNU gcc.
I introduce THRIFT_SAFE_CAST in Thrift.h, which tests narrowing
conversions for fit. Would-be overflows throw std::runtime_error.
Some functions have been modified or overloaded to allow size_t
parameters. SOCKET is dealt with intelligently.
IMO every public thrift function should have a form accepting normal
types – including e.g. short, int, long, and size_t – and apply casts
as necessary. In particular size_t is important because std
constainers have size() members that usually return something like