TST: tweak Hypothesis configuration and idioms
#19831 saw a flaky test, where a slow VM on Travis [went over the default deadline](https://travis-ci.org/pandas-dev/pandas/jobs/448750638#L2895).  This PR therefore configures the per-test-case deadline to a higher value, and disables the global timeout (which is deprecated - we know it's confusing but haven't bumped a major version in years...).

I've also moved a custom strategy from a method on the class to a standalone function, which should avoid some confusion as to where the `draw` argument comes from!