Name functions with variable names

As opposed to resolving the first argument to a string and using that.
Create a function definition type. []{} syntax.

No more auto comma insertion between arrays and blocks.
I think blocks should be generalizable to functions... not sure about
scope issues though.
Unify functions and variables

This allows real anonymous functions