refactor to do more

- refactor from closure to constructor
- next()
- reset()
- supports taking an array
- Name change to lazyseq