Use tail recursive helper functions instead of lists:map + lists:seq

Noticed two things I wasn't really sure if they are correct, see the fixmes on:
https://github.com/GameAnalytics/hyper/blob/tails/src/hyper.erl#L155
https://github.com/GameAnalytics/hyper/blob/tails/src/hyper.erl#L222