numeric algorithm adjacent_difference

I'm not sure we want to use `auto` here (or for `t1` above, or in `partial_sum` for that matter). Input iterators can return proxies -- think of `std::vector<bool>::iterator`. I don't know if we want to permit `t1` and `t2` to be proxies. Probably better to coerce them to `iterator_value_t<I>`.