Add [Csv]Observations classes & sample data

The purpose of these classes is to make a convenient way to load observation
data (datetime, height) from a source such as CSV, and handle any
wrangling to ie numpy when required.

- `Observations` is an abstract-base-class defining a basic interface
  which all subclasses must adhere to.
- `CsvObservations` reads observations from an arbitrary-sized CSV with
  UTC dates. Note that it tries to avoid reading the file into memory.
- Tests for CsvObservations which capture its behaviour.

Included is an example data set from the NOAA with hourly observations
for the year of 2013.
Add test to capture the output of known analysis

This is a regression test to pin the behaviour of pytides doing a full
analysis for `example_observations_2.csv`

Note that it depends on the new `CsvObservations` class.