ForecastIORequest is now testable.

I changed the fundamentals of how the ForecastIORequest works, instead of a class that operates on its fields, the Get methods now ask for the data. I did this because it felt more natural to work that way when you wanted to build a wrapper for your class. By extracting an interface I can now add it to an MVC controller and pass in a mock. This works great for me, and due to the changes, I don't actually expect anyone to accept the pull request as it changes completely how the request worked, but I figured that I should share that option.