Route forecasts, Ensemble Forecasts, new xray API and more!

Contains some (nearly complete) functionality:
* route forecasts - these allow you to add weather information to gpx files which can be loaded in openCPN
* ensemble forecast view - allows you to better understand the uncertainty in a given forecast.
* ensemble spot forecasts.

While some of these features need work before they are available using email requests they are stable and I'd like to get them in before we stray too far from master.

Also includes a plethora of bug fixes and tests.

Special thanks to @ms8r who build the majority of the new features.