repeatedly callable start and stop, IE8 support

Ensured a clean initialization in start, and a thorough cleanup in stop (No-op if start called multiple times before stop)
Ensured that it works on IE8 (and doesn't error out on any other older browsers)
(Maybe that part could be moved to an independent JS script)