Use caller's scope for evaluating by default

This allows the use of methods inside the same scope that the block given to `match` was created. It also avoids a lot of confusion when trying to use those methods doesn't work.

[Check out the spec](https://github.com/mindeavor/deterministic/blob/e431458c1c2ff3957f371d9f04efc0b401655b5d/spec/lib/deterministic/either/match_spec.rb#L85) for an example of what I'm talking about. Notice how you don't have to call `match(self) do`... you just call `match do` instead