Allow concrete Session implementations to decide what to do on handshake timeout

This is mostly for #17 in the future when the proposal is finalized, as it will
be possible to send values other than kTTL_EXPIRED to prod tor into retrying.
Properly handle invalid padding lengths when doing obfs3/ScrambleSuit handshakes

Sigh, I managed to screw this up as well.  I should use evbuffer_search_range(),
but apparently I can't evbuffer_ptr_set() to the tail of a buffer unless
people are using libevent-2.1.1-alpha or later.