lazily create stacks

@jasonhl @csfrancis what do you guys think?

preliminary benchmarking:


before:
```
~/src/liquid  (lazy_stack) ➜ bx rake benchmark:run
/usr/lib/shopify-ruby/2.1.2-shopify1/bin/ruby ./performance/benchmark.rb lax
Rehearsal ------------------------------------------------
parse:         1.880000   0.010000   1.890000 (  1.896757)
parse & run:   4.310000   0.010000   4.320000 (  4.323054)
--------------------------------------- total: 6.210000sec

                   user     system      total        real
parse:         1.780000   0.000000   1.780000 (  1.782656)
parse & run:   4.330000   0.020000   4.350000 (  4.362625)
```

after:
```
~/src/liquid  (lazy_stack) ➜ bx rake benchmark:run
/usr/lib/shopify-ruby/2.1.2-shopify1/bin/ruby ./performance/benchmark.rb lax
Rehearsal ------------------------------------------------
parse:         1.900000   0.000000   1.900000 (  1.907752)
parse & run:   4.160000   0.000000   4.160000 (  4.147444)
--------------------------------------- total: 6.060000sec

                   user     system      total        real
parse:         1.690000   0.000000   1.690000 (  1.690362)
parse & run:   4.070000   0.000000   4.070000 (  4.082147)
```