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.