get_leaf refactors

Hi!

I updated the instance level get_leaf methods to remove the if statements, and updated the class level get_leaf method to account for the instance level changes. You will take a very small performance hit on passing the block around but you will gain some performance from eliminating the if's and the block_given? method call. So that's about a wash. Overall maybe a little more readable?

Tests are passing, unless I messed that up somehow.

Mark

P.S. - I didn't see the PR instructions at the bottom of the read me. I would be happy to resubmit if you like.
P.P.S - I ran the benchmarks with these changes, everything runs a smidge faster over 2,000,000 runs. It's awesome that you included those scripts.