text: Title: m.fit("Differential Evolution") should require bounded=True
  Body: Currently, `m.fit("Differential Evolution")` raises an error regardless: of the bounds set in the parameters, because it checks `m._bounds_as_tuple()`, which is only set if `bounded=True`.
  
  Solution for users is just to set `bounded=True` as an argument to `m.fit()` (and ensure that the bounds are set), but this is not clear in the error message:
  
  ```python
  ValueError: Finite upper and lower bounds must be specified for every free parameter when `optimizer='Differential Evolution'`
  ```