fix object unlink error handling

Fix the object unlink error handling so that each function cleans up
after itself properly.

Also use find_symbol() instead of __symbol_get() to make cleanup easier.
When patching a module we don't need a reference to each symbol, since
we already have done a try_module_get() on the module.

Fixes #392.
The answer is in a comment for find_symbol() :-)

http://lxr.free-electrons.com/source/kernel/module.c#L429

Is that sufficient?