Fix bug #2848 - Recycler maxCapacity can be ignored

`Recycler.Stack.push()` allows caching more objects than `maxCapacity` if `maxCapacity` is not a power of two.
maybe wrap everything in a loop that tests this with a few random `maxCapacity` values between [1,1000).