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