Support for deep inheritance substitutions

This will allow a user to be able to substitute a value at any level of inheritance, not just for the direct parent. 

It is for the jinja-like use-case described in https://github.com/mustache/spec/issues/38 and illustrated in https://gist.github.com/mcheely/3220568

This PR resolves also issue https://github.com/twitter/hogan.js/issues/110

Note: There is one more part to this for this to be completely ready; that is—substituting lambdas that are in grand-parents or further up/down the stack. I'm looking into that now; but if you see a way for clean implementation, please let me know.