internal: pre-bake interface{} objects
internal: pre-bake interface{} objects

This nets us a very impressive 12-20% speedup in a microbenchmark on my
computer (Early 2013 Retina MBP, 2.8GHz, running Go 1.6).

name            old time/op    new time/op    delta
EndToEnd5-8        254ns ± 6%     203ns ±19%  -20.06%  (p=0.000 n=17+20)
EndToEnd50-8       268ns ±11%     224ns ±11%  -16.67%  (p=0.000 n=19+18)
EndToEnd500-8      307ns ±15%     267ns ± 9%  -12.84%  (p=0.000 n=20+17)
EndToEnd5000-8     393ns ±12%     337ns ±14%  -14.37%  (p=0.000 n=20+20)

name            old alloc/op   new alloc/op   delta
EndToEnd5-8         203B ± 0%      169B ± 0%  -16.75%  (p=0.000 n=20+20)
EndToEnd50-8        203B ± 0%      169B ± 0%  -16.75%  (p=0.000 n=20+20)
EndToEnd500-8       203B ± 0%      169B ± 0%  -16.75%  (p=0.000 n=20+20)
EndToEnd5000-8      203B ± 0%      169B ± 0%  -16.75%  (p=0.000 n=20+20)

name            old allocs/op  new allocs/op  delta
EndToEnd5-8         8.00 ± 0%      4.00 ± 0%  -50.00%  (p=0.000 n=20+20)
EndToEnd50-8        8.00 ± 0%      4.00 ± 0%  -50.00%  (p=0.000 n=20+20)
EndToEnd500-8       8.00 ± 0%      4.00 ± 0%  -50.00%  (p=0.000 n=20+20)
EndToEnd5000-8      8.00 ± 0%      4.00 ± 0%  -50.00%  (p=0.000 n=20+20)

goji/goji