Add Weather API

Added weather listeners. Also I decided to add the api.weather package and the Weather/WeatherType files so that you can easily access the current weather from World with something like getWeather() that would return a Weather object that could be manipulated. This in unlike Bukkit where you had the hasStorm() and isThundering() in the World methods but no direct way to get weather. 

Any ideas about this? Would it be nice to have a world.getWeather ability? If so where would that be? Extent? World? etc..?
This is crap

Sent from my iPhone

> On Nov 16, 2014, at 4:14 PM, Troy Stopera <notifications@github.com> wrote:
> 
> In src/main/java/org/spongepowered/api/event/weather/WeatherChangeEvent.java:
> 
> > +    Weather getResultingWeather();
> > +
> > +    /**
> > +     * Sets what the new {@link Weather} should be with a random duration.
> > +     *
> > +     * @param weather The new {@link Weather}
> > +     */
> > +    void setResultingWeather(Weather weather);
> > +
> > +    /**
> > +     * Sets what the new {@link WeatherType} should be with a given duration.
> > +     *
> > +     * @param weather The new {@link Weather}
> > +     * @param duration The duration of the weather in seconds
> > +     */
> > +    void setResultingWeather(Weather weather, int duration);
> Isn't that like saying the vanilla Minecraft command "/weather type duration" shouldn't exist because it doesn't absolutely guarantee that what the user enters is in seconds?
> 
> —
> Reply to this email directly or view it on GitHub.
>