Refactored tests for PHP function statements to move description from comment to test name
Split out simple string templating from util.heredoc(...) to util.stringTemplate(...)
Fixed support for PHP function statement declaration hoisting

- Functions at same block level are 'hoisted' so they can be used before the definition
- Functions nested in a block (eg. inside a conditional) cannot be used until the block is processed