[INTERNAL] overriding Widget#dispose() is almost useless

I do not why this method is not final but from the Javadoc:

NOTE: This method is not called recursively on the descendants of the
receiver. This means that, widget implementers can not detect when a
widget is being disposed of by re-implementing this method, but should
instead listen for the Dispose event.

As a result the cleanup of custom widgets did not happen most of the
time.

Change-Id: I1e19f7a5744a72bb42c04bdbed959e31d2e8a15a
Reviewed-on: http://saros-build.imp.fu-berlin.de/gerrit/1673
Tested-by: Jenkins CI
Reviewed-by: Stefan Rossbach <srossbach@arcor.de>