feat(tooltip,modal): reuse fetchTemplate promises (fixes #1301)