Timeout.total is a number or None

This simplifies the comparison logic.

Connect timeouts now follow the below table:

connect = int, total = None: connect is int
connect = int, total = int: connect is minimum

connect = None, total = int: connect is total
connect = None, total = None: connect is None

connect = object, total = int: connect is total
connect = object, total = None: connect is object