Fix one of logic

I found some issues with oneOf that wouldn't validate some schemas I was expecting to pass. In trying to get my schemas to pass I ended up refactoring the oneOf attribute's logic.

Existing oneOf tests still pass along with additional tests I added.

See the comment on 8874569 as I believe there is possible future refactoring to be done to make the `JSON::Schema::Validator#validate` method return true/false.