Replace Signal with std::function.
Originally Signal is used to notify webview when callback of web
engine is called. If Signal is called with a std::shared_ptr<X>,
lifecyle of object X would be managed by Signal only in
csharp-binder. So if Signal are destroyed, object X would be
destroyed too. This might cause some problem.
This patch is to replace Signal with std::fuction, and replace
std:shared_ptr with unique_ptr. Lifecycle of object X would not
be associated with that of Signal.
Change-Id: I3f4bdc2f58dd28444ab6640f7c8c4a56e037e83c