Implement parser for else chaining of helpers

Allows users to chain multiple helpers together using their inverse callbacks.
I.e.

```
{{#if foo}}
{{else if bar}}
{{else}}
{{/if}}
```

The control flow here effectively causes the helpers to be nested. The above
is actually syntactic sugar for this:

```
{{#if foo}}
{{else}}
 {{#if bar}}
 {{else}}
 {{/if}}
{{/if}}
```

Any helper may be used in this manner, the only requirement is they support
normal calls and inverse calls.

Introduces a breaking change in that `{{else foo}}` may no longer be used as a
root level operator. Instead `{{^foo}}` must be used.

Fixes #72.