Add support for testing button being held/pressed

It was a bit hard to decide how to organize the data. It might be a
bit of a slower method.