Polish up the view life-cycle logic.
Add a new c++ api destroyView() to delete a view.
Since the destructor does not guarantee the virtual functions for view's lifecycle.
We cannot call such the view state function ie, onDestroy() in the destructor.
Instead, we introduce the destroyView() member function to deal with this.
Additionally, change the behavior of the onActivate(), Deactivate(), onUnload(), onPause() ...
Those states will be called only if the view's content is existed.
Change-Id: I63241b1173e80283cff4ed8201f287e03949cf44