Make @ references resolve at render rather than parse - RFC

This is a sort of mixture of #1303, #1035, and a thing I needed (@keypath). So, here's what this does

* Make `@index` and `@key` resolve during render instead of mapping to an `indexRef`.
* Consequently, `indexRef`s can be used alongside `@index` and `@key`.
* `@index` and `@key` are also now available in any iterative section. Not sure if that was wanted, but it's certainly convenient at times. Also, it shouldn't interfere with anything, as `@whatever` is not valid javascript and was already a syntax error. Currently anything other than index, key, and keypath will through an invalid mustache error.
* Introduces `@keypath`, which finds the nearest context/keypath and resolves to the string. I needed this for an event within a `{{#with}}` where I was trying to update a value based on keypath, which got destroyed by the `{{#with}}`. I'm not sure if this is ideal or wanted, but it's relatively unobtrusive and solved my case nicely. `{{# with { keypath: @keypath, ... } }}... with an event <a on-click="doSomething(.keypath)">Here's a fresh keypath</a>{{/with}}`
* Adding another special ref should be much simpler: just add a case to `src/shared/resolveSpecialRef.js`

#### How it works

Instead of walking all over the template tree in a converter looking for index refs and installing aliases, this just adds another hook `specialRef` alongside `indexRef` in the appropriate mustache handlers. The handler then walks up the fragment tree at render or rebind to find the nearest defined `.index` or `.context` to resolve the value.

_This initially incomplete message was brought to you by the backtick key's proximity to tab and a quick newline, the letter `a`, and the number `3`._