* raise default headroom/tailroom to 512 for worst-case compression
expansion
* for TCP connections use async_connect instead of connect
* for Time and Time::Duration, handle subtraction reasonably with
infinite values
* handle possible infinite duration in to_posix_duration
* fix overflow in Time::Duration::to_milliseconds
* call Base::update_now() in ClientProto::start
objects by simulating an unreliable packet stream.
Modified packet_id code so that current time (now) is passed
via function calls rather than accessed as a global.
Added integer random number support via boost::random.