Issue #283: Fix memory leak caused by libvirt connection wrapper

This patch changes to apply the wrapper on class method instead of
instance method to avoid the circular reference caused by wrapping
instance method. After the decorator is applied, the instance method
is saved in the wrapper's closure. So the libvirt obj refer to the
new wrapped method, which also has reference to the libvirt obj.
Actually, python's garbage collecting can resolve the case of circular
reference. But it can't work with the case when the object contains a
__del__() method. This is just the case for virDomain objects. (
http://docs.python.org/2/library/gc.html#gc.garbage).

This patch changes to apply the wrapper on the class method instead of
instance method, which can avoid having refrence to the instance.

Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com>