Add support for timer-based timeouts to gen:call

Useful for enforcing a timeout when making a series
of calls without scripting custom interactions.
Separating the normal wait_resp maintains
readability while enabling clause-based selection
of the timeout format (though separate clauses are
not strictly necessary).

Updates the documentation of gen_server, gen_fsm,
and gen_event to refer to the new functionality.