Made .history type consistent (tuples only)

An empty history (direct response) was represented by an empty list []. A non-empty history was a tuple. This inconsistency was breaking code such as `req.history + (req,)` which failed when history is empty.