pydata/pandas — pull request #7697 by sinhrks (2014-07-08 15:55:25+00:00)
Title: BUG/PERF: offsets.apply doesnt preserve nanosecond

Main Fix is to preserve nanosecond info which can lost during ``offset.apply``, but it also includes:
- Support dateutil timezone
- Little performance improvement. Even though v0.14.1 should take longer than v0.14.0 because perf test in v0.14 doesn't perform timestamp conversion which was fixed in #7502.
NOTE: This caches ``Tick.delta`` because it was calculated 3 times repeatedly, but does it cause any side effect?

### Before
```
-------------------------------------------------------------------------------
Test name | head[ms] | base[ms] | ratio |
-------------------------------------------------------------------------------
timeseries_year_incr | 0.0164 | 0.0103 | 1.5846 |
timeseries_year_apply | 0.0153 | 0.0094 | 1.6356 |
timeseries_day_incr | 0.0187 | 0.0053 | 3.5075 |
timeseries_day_apply | 0.0164 | 0.0033 | 4.9048 |

Target [d0076db] : PERF: Improve index.min and max perf
Base [da0f7ae] : RLS: 0.14.0 final
```

### After the fix
```
-------------------------------------------------------------------------------
Test name | head[ms] | base[ms] | ratio |
-------------------------------------------------------------------------------
timeseries_year_incr | 0.0150 | 0.0087 | 1.7339 |
timeseries_year_apply | 0.0126 | 0.0073 | 1.7283 |
timeseries_day_incr | 0.0130 | 0.0053 | 2.4478 |
timeseries_day_apply | 0.0107 | 0.0033 | 3.2143 |

Target [64dd021] : BUG: offsets.apply doesnt preserve nanosecond
Base [da0f7ae] : RLS: 0.14.0 final
```