Changed to iterator

Changed decode method to work with iterator instead of list.
Slice operation in python have O(N) time complexity in worst case (string[1:]). Therefore large amount of erlang terms takes too much time to proceed. Iterator allows decode in O(1) time.