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.
Well, that was actually part of the issue. The original commit (8d2ddae) checked with `==`, but also had `Math.max()` for proper capacity. That was later removed for some reason. If the original code had checked with `>=`, this bug wouldn't have been as bad as it is. The capacity would still be capped at the next power of two. It wouldn't have been unbounded.

With the new unit test, this kind of breakage during random change should be caught early. I personally prefer to still leave room for error. But if you want me to change to `==`, I will be glad to do it.