Add support reading non ASCII encoded templates

 - Uses 'utf-8' encoding by default
 - Allows to provide optional custom encoding parameter when calling methods Template.load_text() and Template.load_template()