Added following support :
1) Context managers,
1.1) To be used with python 'with' statement.
1.2) support 'retry', 'ignore' and 'lock' functions.
-> retry : retry a func for n counts
-> ignore: Ignore certain expected exceptions.
-> lock: Lock a db transaction
1.3) NFP module need not handle all possible exceptions
as try-except branches.
2) Single class Exception Handling :
All the exceptions from module will be caught by nfp/core
and the registered exception handler will be invoked with
all the relevant details (event, data, context, exception..)
3) Used 'context manager' retry function with client methods,
Neutronclient, Novaclient etc.. especially for GET methods.
E.x, GET_TOKEN is retried 'n' times to overcome any
temporary failures with keystone.
Change-Id: Ia821938b9f607799ebeaa1c0e2ddda74ebc96fd8
Partial-Bug: 1668198