Fix use of {{partial}} inside block helper like {{each}}

Before, `{{partial}}` was incorrectly looking for the `_app` property; it
could find it in the helper context (`this._app`), but not in the helper
options (`options.data._app`), which are utilized by block helpers like
`{{#each}}` for passing through the app context.

This adds a `getProperty(key, context, options)` method which DRYs up that
logic.

Also cleans up the context logic in `{{partial}}`.

/cc @jacoblwe20 @91bananas