I wrote a simple RC-5 decoding library, which can also detect repeating codes. The library only has two functions, so it's super easy to use.
It is based around a timer interrupt, so it's completely non-blocking. Even the decoding and repeat detection is done in the interrupt.
Here is a full explanation of it.
And here's the library itself.