[MRG] Tree.Draw improvements

This now handles more cases for TTree.Draw.

```python
        tree.draw('a_x')                                                        
        tree.draw('a_x:a_y')                                                    
        tree.draw('a_x:a_y:a_z')                                                
        tree.draw('a_x:a_y:a_z:b_x')                                            
        tree.draw('a_x:a_y:a_z:b_x:b_y', options='para')                        
                                                                                
        h1 = Hist(10, -1, 2, name='h1')                                         
        h2 = Hist2D(10, -1, 2, 10, -1, 2)                                       
        h3 = Hist3D(10, -1, 2, 10, -1, 2, 10, -1, 2)                            
                                                                                
        # dimensionality does not match                                         
        assert_raises(TypeError, tree.draw, 'a_x:a_y', hist=h1)                 
                                                                                
        # name does not match                                                   
        assert_raises(ValueError, tree.draw, 'a_x>>+something', hist=h1)        
                                                                                
        # hist is not a TH1                                                     
        assert_raises(TypeError, tree.draw, 'a_x:a_y', hist=ROOT.TGraph())         
                                                                                
        # name does match and is fine (just redundant)                          
        tree.draw('a_x>>h1', hist=h1)                                           
        assert_equal(h1.Integral() > 0, True)                                   
        h1.Reset()                                                              
        tree.draw('a_x>>+h1', hist=h1)                                          
        assert_equal(h1.Integral() > 0, True)                                   
        h1.Reset()                                                              
                                                                                
        # both binning and hist are specified                                   
        assert_raises(ValueError, tree.draw, 'a_x>>+h1(10, 0, 1)', hist=h1)        
                                                                                
        tree.draw('a_x', hist=h1)                                               
        assert_equal(h1.Integral() > 0, True)                                   
        tree.draw('a_x:a_y', hist=h2)                                           
        assert_equal(h2.Integral() > 0, True)                                   
        tree.draw('a_x:a_y:a_z', hist=h3)                                       
        assert_equal(h3.Integral() > 0, True)                                   
                                                                                
        h3.Reset()                                                              
        tree.draw('a_x>0:a_y/2:a_z*2', hist=h3)                                 
        assert_equal(h3.Integral() > 0, True)                                   
                                                                                
        # create a histogram                                                    
        hist = tree.draw('a_x:a_y:a_z', create_hist=True)                       
        assert_equal(hist.Integral() > 0, True)                                 
                                                                                
        hist = tree.draw('a_x:a_y:a_z>>new_hist_1')                             
        assert_equal(hist.Integral() > 0, True)                                 
        assert_equal(hist.name, 'new_hist_1')                                   
                                                                                
        # create_hist=True is redundant here                                    
        hist = tree.draw('a_x:a_y:a_z>>new_hist_2', create_hist=True)           
        assert_equal(hist.Integral() > 0, True)                                 
        assert_equal(hist.name, 'new_hist_2')
```