Refactor: unify downloader & wind Dataset classes

The primary goal was to have one (instead of two) Dataset classes. To
achieve this,

  - There is now a more general Dataset class that can open files, has a
    few utility functions to list files and so forth (from the original
    Downloader Dataset class). It will mmap the file, but do no more.
  - The downloader will construct a numpy array from the mmap by passing
    it as a buffer to ndarray(...)
  - The interpolation code will cast the mmap to a double array once
    (keeping the result in a closure), producing a function that can be
    used to get wind u/v (from the original wind.pyx)

Along the way,

  - The README was updated to reflect current reality
  - The tawhiri-download script is now produced by setup.py
  - A Dataset.find_recent method was added (that does what it says on
    the tin).
Add copyright notice to downloader
Mention license in readme
Reduce is moved to functools for python3, not worth it
Split testing files into benching and producing output
Use signed integers in get_wind

 - We want to be able to have p_idx = -1 temporarily.
 - We don't need the range.
Switch to a different style of interpolation
Wrap longitude
Time is now absolute in the solver
Explain 720 + 1 magic in interpolate.pyx
Merge pull request #20 from danielrichman/refactor

Refactor: unify downloader & wind Dataset classes
Merge pull request #21 from danielrichman/signed-indices

Signed indices
Merge pull request #22 from danielrichman/interpolation-style

Interpolation style
Merge pull request #23 from danielrichman/wrap-longitude

Wrap longitude in the solver
Merge pull request #24 from danielrichman/absolute-time