@deprecated support for any object

Decorator @deprecated and @deprecate_arg currently assume they are run
on a bound method.  This changeset fixes constraints in the previous
implementation.

Also always report which module the deprecated method is in, as the
user may not recognise names like 'BaseSite' if they are using many
packages, and pywikibot might be used indirectly by another package.
To achieve this, a new constraint is that all decorators must
call pywikibot.tools.add_decorated_full_name(), even if they dont
use the full name, so that is available for as other decorators
in the chain.

Output 'deprecated' instead of 'DEPRECATED'.

Change-Id: I2fefef7e62dbd0595b2b771f61e34c569c7b3773