Allow iterables not just lists

Rather than just lists we should accept anything that is iterable (apart
from strings). This allows us to put lazy generators into a post or
maybe a tuple.

hasattr(data, '__iter__') will not return true for a string, even though
iter() will return for a string. See:

http://stackoverflow.com/questions/1952464/in-python-how-do-i-determine-if-an-object-is-iterable