(1) Replaced description "decoration" methods with a description builder class. (2) Fixed TemplateException bugs with stack trace charset encoding and sync.

Note for (1): This reduces TemplateException creation resource usage further (as far as it will be silently handled), as the final message from the blamed expression, tips and so on is only assembled when the message is indeed needed.
Added new method, Environment.isInAttemptBlock(), to check if we are within an #attempt block.  Utilizing this in TemplateExceptionHandler.DEBUG_HANDLER and HTML_DEBUG_HANDLER for not printing the error when inside an #attempt block.
#attempt passes the exception instead of its message to #recover, so the message doesn't have to rendered if ${.error} is not used.