benchmarks: add encoding benchmarks, generalize further
optimize unbeam for lists

add strictness and use a DList
loosen bound on QuickCheck