Disable class-based connection of instance-specific handlers

The following signatures are removed:

    cls.event.connect(instance, handler)

The following stays valid:

    cls.event.connect(handler)
    inst.event.connect(handler)

The rationale is simplicity: It is easier to remember a single calling
signature with only one argument. In particular the removed signature
might be confusing in terms of parameter order, since the *first*
parameter was optional.

Furthermore, this is easier to handle internally, especially with regard
to upcoming revival of a bound_event class.
Revive bound_event as a class

The previous approach was returning a new copy of a function from
`event.__get__` each time. Since function comparison is done by identity
this breaks code like `.connect(a.foo)` followed by `.disconnect(a.foo)`
(assuming `a.foo` is an event).

Furthermore, in python it is not possible to overload equality of
functions (it is not possible to derive from FunctionType/MethodType).
Therefore, the only possibility I can see to get the desired behaviour,
is to revert back to a bound_event class.
Move __get__ to bound_event class

To enable later access of __get__ like in:

    - foo.bar.__get__(...)
    - Foo.bar.__get__(foo)
Make wraps() injectable

This is more flexible than a boolean option _decorate=True.
Customize repr()esentation

To show function signature in help strings