BUG: tail raises on empty DataFrame
closes #5846

calling tail on an empty frame threw an exception.   In addition, df.tail(0) returns self without indexing.  

had and tail should have very similar checking code for the edge cases
 added a check for empty frame for head as well.
 @MichaelWS fyi....I edited the title / top of the PR.

putting the `closes issue number` sets up a link the original issue, then automatically closes it when its merged.
 Thanks.  
 don't change the test

can u show me what is returned kn both current and your case for head(0)?
 Currently it returns:
In [3]: pd.DataFrame([1,2,3]).head(0)
Out[3]: 
Empty DataFrame
Columns: [0]
Index: []

[0 rows x 1 columns]

I could easily keep that functionality. I am not sure why someone would call df.head(0) for a non-empty frame.
 My case would be:

In [3]: pd.DataFrame([1,2,3]).head(0)
Out[3]: 
   0
0  1
1  2
2  3

[3 rows x 1 columns]
 yours is my right bug neither is the original

I think it should return self

iloc[0] on an empty frame is wrong too I think - can I make an issue for that one?
 yes, please make an issue on that.  
I agree with you. I think self makes more sense.  
 can you rebase this?
 sure. this is done.
 The only real functionality change is df.head(0) returns self
 hmm...ok why don't you put an additional note in the API section (leave your existing one their). I don't think its a big deal but should document it (reference this issue or original again)
 I put a note in  the docs.
 thanks for the PR!
