ENH: method to shuffle tip names on a tree

Not urgent to merge for 0.1.4, but I needed a method to help benchmark `majority_rule`, and the first one that came to mind was a way to easily shuffle tip names on a tree. I can see this method being useful in other contexts as well. 


The caller may not know how many trees in advance to produce. This is similar in behavior to biom's [generate_subsamples](https://github.com/biocore/biom-format/blob/master/biom/util.py#L47). This is a useful pattern when generating data as it puts the burden of control on the caller and lets the callee focus on what its intended to do: produce something. It is not an atypical pattern in general although it is not common in biocore. For instance, with Python's file object, you don't specify the number of lines you want when iterating and you cannot guarantee that the file loop will ever raise `StopIteration`. In other words, this method is treating this as a producer/consumer problem where it is up to the consumer to decide how much to consume, instead of the consumer telling the producer how much to produce. In practice, the use would likely look like:

```python
for _, shuf in zip(range(foo), tree.shuffle()):
    # do something
```

But this pattern is not unreasonable to expect:

```python
iter_ = tree.shuffle()
while value > threshold:
    shuf = iter_.next()
    value = do_something(shuf)
```

If the burden of specifying the number of trees to produce is placed on the callee, then the second of those patterns becomes more complex. Or, `TreeNode.shuffle` always returns a single tree, in which case both patterns suffer due to overhead. 

The above could be supported cleanly with the logic in `shuffle` through something like `shuffle(iter=inf)`, but my preference is the current form as specifying the number of iterations makes this a situation where the consumer is directing the producer, which feels unintuitive to me as it makes the producer (minorly...) more complex when it isn't necessary to have that complexity encoded.