Change implementation to use template tag

Changed the implementation to use the HTML5 `<template>` tag. Because our Windows & Linux players are running such old versions of Chrome, I've had to include a polyfill. Still, I much prefer this to the older `DocumentFragment` method.