Issue422

Sorry for the limited granularity on the commit history. This adds in majority rule and addresses #422. It should perform fairly better than the cogent implementation, but not awesomely better. I'm pretty certain that the lookups into `accepted_clades` can be optimized so that, instead of a O(N) search through a list that a `dict` could be used to provide O(1)-ish lookups to ancestors. I was planning on benching that tomorrow, but was hoping to get a review in parallel while finalizing performance tweaks.
Test of input that returns multiple trees will cover it. 

But re: my comment about adding some other test of valid input, I like to see a function tested with more than one input to confirm that different valid inputs each give correct output. For example, this test would pass even though the function ``add_one_to_x`` has a bug in it:

```
def add_one_to_x(x):
    return 42

def test_add_one_to_x():
    assertEqual(add_one_to_x(41), 42)
```

This test, which covers multiple valid inputs, would catch the bug in ``add_one_to_x``:
```
def test_add_one_to_x():
    assertEqual(add_one_to_x(41), 42)
    assertEqual(add_one_to_x(42), 43)
```

This is obviously a silly example, but in practice I think it's important to test with multiple inputs to make sure that your function isn't overfit to the specific input value that you're testing with.