Include the most recent five revisions in the response of a need

These changes add a new key in the response body of a need - `revisions` - which is an array of the most recent five revisions of a need. Each revision includes the author details, the timestamp, and a hash of the changes between this revision and the previous one.

This also includes some changes to the amount of information returned for each need in the results list, using a new presenter `BasicNeedPresenter`. I've also refactored the `NeedPresenter` unit tests, so that it is cleanly decoupled from the behaviour of the other presenters it would usually invoke.