normalizing name used for function for jade and ejs

Special characters in filenames cause eval errors in the browser due to invalid function names being used (in place of the default *anonymous* name).  The use case I was hitting in particular was having hyphens in filenames.

This PR extracts that logic into `Temper.prototype.normalizeName`, which removes leading numbers, and then anything that isn't alphanumeric, a **$**, or an **_**.

A couple tests were added along with it.