BUG: Pass args and kwargs to empty
Closes #6952

I wasn't sure what the best way to test this was. I went with calling `_apply_empty_result` directly and checking for a SystemExit to get around the try: except Exception block in `_apply_empty_result`.

I still don't think I've 100% ensured that `_apply_empty_result` will always be _called with_ _args and *_kwargs (if there are any), but if they are passed things will be handled correctly.

Hmm py3 failures. I can't do `rase arg` in py3 even if `arg=ValueError`. You have to wrap in an `Exception(arg)`, which gets swallowed up by the `try: except` block that I'm trying to test...

suggestions?
 not sure if it really needs a test; if it doesn't break anything else its ok
 do you have an example that failed before? and works now?

e.g. a function on an empty frame, that could be a test

(don't have to test the generic reduction test though)
 My tests in #6955 fail without this, so that should be good right?
 specifically 

``` python
        # test degenerate case
        q = DataFrame({'x': [], 'y': []}).quantile(0.1, axis=0)
        assert(np.isnan(q['x']) and np.isnan(q['y']))
```

in `pandas/tests/test_frame:TestDataFrame.test_quantile`
 oh sorry..didn't see that (that's ok then)

maybe in the other PR reference the PR number just in case
