use Sets instead of Lists

@williamboxhall The inputs/outputs shouldn't have duplicated elements and the order is not necessary.
But not if i provide a Set to traverse... right? Because sets are orderless. So I couldn't do the same for 
```scala 
val tweetIds = Set(1,2,3)
val tweets = Clump.traverse(tweetIds) { tweets.get(_) }
tweets ==== List(Tweet(1), Tweet(2), Tweet(3))
```
would not work