utils: adding Utils::Function to support polymorphic function wrappers

Utils::Function wraps std::function or std::tr1::function to give
polymorphic function wrappers, i.e. a way to accept function pointers
or functors as arguments as long as they have the correct signature.

Change-Id: I4032264cf6b84ef647f790c566543633b4d0653b
Reviewed-by: hjk <hjk121@nokiamail.com>