Tide level window endpoint

Add `/predictions/tide-windows` view …

- TimeWindowSerializer, which serializes a start and end prediction to a
  time window
- Update urls
- Add a ListAPIView called TideWindows, shares some functionality with
  TideLevels view
- Add tests
- Factor out common code from TideLevels view
- Add `split_prediction_windows` function & tests