Remove expression cache

@pushrax & @jasonhl for review

## Problem

Pull request #391 separated `Context#[]` which parsed and rendered expressions into `Expression.parse` and  `context.evaluate` to avoid memoize expression parsing.  However, parsing was still happening during rendering, which prevents us from caching the parsed expression along with the parsed template in memcache.

## Solution

Use `Expression.parse` and `Context#evaluate` in all the tags instead of `Context#[]`, then remove the expression cache, since we each expression will only be cached once.

## Benchmark

Here is the benchmark this branch:

```
              parse:       18.3 (±10.9%) i/s -       1078 in  60.034122s
        parse & run:       11.1 (±9.0%) i/s -        659 in  60.040146s
```

Here is the benchmark on master:

```
              parse:       20.1 (±14.9%) i/s -       1185 in  59.993718s
        parse & run:       11.1 (±9.0%) i/s -        662 in  60.003203s
```

## Future Work

The strict parser has been parsing expressions then converting them back into strings to use with `Context#[]`.  This refactoring will make it easier to just parse the expression once in the strict parser.
hm this looks kinda odd. can you explain what this does and whats up with the quotes?