Added error handling to MultiComparison

In the current head the following pieces of code
```python
import numpy as np
from statsmodels.sandbox.stats.multicomp import MultiComparison
data = range(10)
groups = [1]*10
mod = MultiComparison(np.array(data), groups, group_order=sorted(set(groups)))
a = mod.tukeyhsd(alpha=0.01)
```

raises the following

``` 
File "statsmodels/statsmodels/stats/libqsturng/qsturng_.py", line 470, in _func
   a[2]*math.log(r-1.)**3 + \
ValueError: math domain error
```

The error is cryptic and buried deep down in `statsmodels`'s internals, but is simply due to non-sensical user input (performing multiple comparison with a single group). Similarly, 

```python
data = [1]*1
groups = [1]*1
mod = MultiComparison(np.array(data), groups, group_order=sorted(set(groups)))
a = mod.tukeyhsd(alpha=0.01)
````

raises 

```
  File "statsmodels/statsmodels/stats/libqsturng/qsturng_.py", line 683, in _qsturng
    raise ValueError('v must be > 1 when p >= .9')
ValueError: v must be > 1 when p >= .9
```

which I believe is also down to incorrect user input. I've added a two checks that fail early, raising more helpful error messages.

The third example actually runs in the current head, but it is not transparent what is happening behind the scenes. When there are less groups than data points, all data points without a corresponding group name seem to be ignored. However, this isn't mentioned in the docs. I prefer an exception to be raised in this case as this kind of event is rarely deliberate and usually indicates an error in the client code.

```python
data = [1]*10
groups = [1, 2]*4
mod = MultiComparison(np.array(data), groups, group_order=sorted(set(groups)))
a = mod.tukeyhsd(alpha=0.01)
```

I feel this example should raise in the constructor too.
We have self.groupsunique a bit further down in `__init__`.
We can just check this there and avoid the `set` creation.