Cache step_match results.

This offers a large speedup in larger test suites in which there are many
steps and some steps are reused many times.

We've been testing this for some time now internally as a monkey patch, it
gave us over a 15% speed boost on our 900+ step cucumber suite. The only
problems it caused was we were missing a few `wait_for_ajax` and the new step
resolution was so fast we had to fix a couple tests in some cases.
Definitely worth it overall.