Refactored `max-statements` rule.

Refactored the max-statements rule to push/pop from a function stack to evaluate the number of statements in a function. Previously the number of statements were being calculated by recursive traversal. Additionally, I've cleaned up a few of the tests.