Bug in date_range with semi-open interval and freq='B'?
#5637 has some examples as well

When the end date in `date_range` is not a valid business day it appears that `date_range` first sets it to a valid date _before_ deciding whether to return the last date depending on whether the interval is closed or open on the right. This results in the date range being incorrectly truncated when the interval is open-right - e.g.

``` python
In [22]: for d in pd.date_range('20-Mar-2014', '23-Mar-2014', freq='D'):
    ...:     print d.strftime('%a %d-%b-%Y')
    ...:     
Thu 20-Mar-2014
Fri 21-Mar-2014
Sat 22-Mar-2014
Sun 23-Mar-2014

In [23]: pd.date_range('20-Mar-2014', '23-Mar-2014', freq='B')
Out[23]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-03-20, 2014-03-21]
Length: 2, Freq: B, Timezone: None

In [24]: # should return all valid business days <= '23-Mar-2014'
    ...: pd.date_range('20-Mar-2014', '23-Mar-2014', freq='B', closed='left')
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-03-20]
Length: 1, Freq: B, Timezone: None
```
