Window.trigger now passes the instance to the callback

Now all callbacks will receive the window instace
as their first argument when called. However, if the
callback is a method bound to the window instance
the implicit 'self' reference is used instead of
explicitly setting it as the first argument.
The @explicit_window_reference decorator is provided
in case this functionality needs to be overidden, e.g.
in cases where the method is being set as a callback
for a window which is not 'self'. Class methods still
recieve the class as the first argument followed by the
window.

Example callback declarations:

    def function(window, *args)

    def bound_method(self, *args)

    @explicit_window_reference
    def bound_method(self, window, *args)

    @classmethod
    def class_method(cls, window, *args)

    @staticmethod
    def static_method(window, *args)