Supporting custom template extension

Fix missing escape
Add program metadata

Include program id and depth on the generated wrapper objects. This
allows helpers who are passed these objects to differentiate between
helpers for cases where they may want to cache the generated DOM
structure.
Allow accessing properties in current context using paths. This is to
avoid name collisions with registered helper functions.

Issue #458
Allow colon characters in identifiers

Issue #460
Fix Rhino support
Add contexts for string mode hash values

Allows for evaluating hash parameters such as ../city in string mode.
isEmpty test
escapeExpression tests
Force toString in escapeExpression

Fixes #211
Merge branch 'master' of github.com:jpfiset/handlebars.js into jpfiset-master
Rebuild
Add test case for GH-458
Merge pull request #462 from broady/master

Fix support for Rhino
Rebuild
Escape unicode newlines in string literals

Fixes #375
Merge branch 'master' of github.com:matteoagosti/handlebars.js into matteoagosti-master

Conflicts:
	bin/handlebars
Escape passed regex
Allow compilation of empty string

Fixes #461
Restore knownHelpersOnly throw

Fixes #302
Merge branch 'program-metadata'