[MRG] Improved input checking

Improved input checking:

* raise TypeError if unsupported branch is specifically selected
* raise RuntimeError if no branches can be converted.
* raise ValueError if branches is an empty list or if the tree has no branches

This fixes part of an issue reported on the rootpy-users list when the tree has no branches that are supported types:

```
  File "/home/ssehrish/.local/lib/python2.7/site-packages/root_numpy/_tree.py", line 312, in tree2rec
    weight_name=weight_name).view(np.recarray)
  File "/home/ssehrish/.local/lib/python2.7/site-packages/root_numpy/_tree.py", line 280, in tree2array
    weight_name)
  File "tree.pyx", line 594, in _librootnumpy.root2array_fromCObj (root_numpy/src/_librootnumpy.cpp:597)
  File "tree.pyx", line 524, in _librootnumpy.tree2array (root_numpy/src/_librootnumpy.cpp:524)
  File "tree.pyx", line 420, in _librootnumpy.init_array (root_numpy/src/_librootnumpy.cpp:420)
TypeError: Empty data-type
```

Same problem as:

```
>>> import numpy as np
>>> np.empty(10, dtype=[])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Empty data-type
```