Added functionality for nova hooks pass functions

Nova hooks do not pass the function they wrap to the hook
as a parameter. This patch adds an optional parameter to
add_hook which will change the function signatures for pre
and post, enabling hooks to acquire and use information
about the function they are wrapped around.

Additionally adds a unit test for the new hooks in test_hooks.py.

Change-Id: Ie328b2460ef0e063892944c97934c12076ed4979
Merge "Added functionality for nova hooks pass functions"