Adding some better error handling for the weather API.

Causing 500 errors on the server when it doesn't connect. Caching the
results for 15 minutes.