Fix Cython 3.0 regression with time_loc_dups
re https://github.com/pandas-dev/pandas/pull/55179

From discussion in https://github.com/cython/cython/issues/1807#issuecomment-1802656280 it looks like Cython  prior to 3.0 would always use the sequence protocol for indexing with an integral value. However, Python prefers the object protocol first if available, and Cython switched to match that logic with 3.0

NumPy arrays implement both the sequence and the mapping protocol. In cases where we have untyped arrays that fall back to Python calls we will see a performance regression since this will now route through the mapping space

The changes in this PR are not meant to be an exhaustive review of the codebase, rather just a quick POC to reset the time_loc_dups benchmark

LGTM, bummer that its necessary though. Thanks @WillAyd 