fix: speedup component template loading by caching

Needed as calling template.then is always asynchronous,
even when the promise is already resolved.
fix(ngIf): destroy the views so they can free the WatchGroups