zones, subscribe and unsubscribe support

XWALK-865

It appears to me that if a Vehicle instance hits end of its scope, all objects in it must be explicitly unsubscribed, otherwise the objects left behind will have no chance to be deleted.

I would prefer smart pointer in this case, maybe at least add a check-and-delete in the destructor of Vehicle.