Parse function declarations with args

Unhappy with the amount of hardcoded whitespace in some of these rules that
are starting to pop up. Would be nice to invest some time soon and start to
handle arbitrary whitespace / semicolons as needed.