[Application][D-Bus] Unlisten for D-Bus name with the correct callback

When running xwalk --run-as-service in Debug mode, Crosswalk was
crashing during shutdown. Reason was that we were creating a new
base::Callback() via bind to unlisten, but we need to use the
same instance.

This commit stores the callback instance so we can unlisten the
correct callback. Because the callback can be cleared, we can use
it instead of keeping a separated boolean.

We also change the destructor logic slightly: we don't ask the
application termination from it anymore, just unlisten the owner (if
necessary). The destructor is called in two situations

  (a) by the manager when application will be destroyed;
  (b) when shutting down the manager.

For (a) asking the application to be terminated is redundant, and
for (b) the fact that the D-Bus interface is going away shouldn't
necessarily imply that we terminate the applications, the regular
Crosswalk shutdown will take care of this.

TEST=Run out/Debug/xwalk --run-as-service and xwalkctl <APP_ID> then
close the window. The first process should not crash but exit cleanly.
Merge pull request #1519 from cmarcelo/dbus-unlisten-wrong-callback

[Application][D-Bus] Unlisten for D-Bus name with the correct callback