Added support for treating nested function declarations the same as top level declarations, first adding sigs into the environment and then processing statements, which allows them to be used before the declaration point is reached; this does not work inside string interpolations yet