Move empty templates check to the NewRenderer func

This neatens up the area of responsibility each part of the code handles I think. The CreateWatcher function no-longer needs to know anything about the logic that causes the renderer to be created, it's neatly packaged away in the NewRenderer function, and there is now a guard in the NewRenderer function that will cause it to always be created in the correct way depending on what the templates array looks like without relying in external functions to validate the input for it.

Fixes #6