Made .history type consistent (tuples only)

An empty history was represented by an empty list whereas a non-empty history was a tuple.
Now the type of .history is always a tuple, so it does not break code such as `req.history + (req,)`.