Throw FileNotFound when can't resolve template file

The FileResourceProvider returns null when it can't find the template file.  This is very hard to diagnose when you don't know what the actual path that is used internally.  Here is a pull request to throw a FileNotFoundException, instead, when the file can't be found.  The exception contains the full path to each of the possible template files (all the paths it will try to resolve).  This will make it way easier to figure out where the template dir path should reference.