Some minor fixes to challenges in some lessons

There were two challenges that I wanted to fix:

1. In the "analyzing multiple data sets" lesson one challenge refers to a `reverse` method that belongs to Python strings. This method doesn't appear to exist (at least not in the version of Python included in the recent versions of Anaconda) so I removed all reference to it.  
2. In the "defensive programming" lesson there is a challenge that asks the participants to fix the `range_overlap` function. We want that function to fail when `test_range_overlap` is run so that the participant realizes that they shouldn't have initialized `lowest` and `highest` with 0.0 and 1.0. However, at the moment correct answer for all the relevant test cases is 0.0 and 1.0, so it doesn't fail as we'd like it to. I've simply changed one of the test cases so that the answer is 2.0 and 3.0, which fixes this problem.

In editing the `05-defensive.ipynb` file I had to actually re-generate that notebook on my own machine (because I needed the error messages to update), which means a diff of that file shows a whole heap of formatting changes that have arisen because I generated the notebook on my machine, not because they are changes I necessarily wanted to make. I hope this isn't a problem!