Fix Timestamp rounding
- Closes #21262
- Tests added (thanks  @Safrone [PR](https://github.com/pandas-dev/pandas/pull/21265))

This change-set is to avoid rounding a timestamp when the timestamp is a multiple of the frequency string passed in.

"Values" param passed into round_ns can either be a np array or int. So relevant handling added for both.

FYI I havn't used Cython much before so keen to get peoples thoughts/feedback.

Thanks
