move async image markup into a helper, add noscript fallback