Allow map keys to be function calls

The majority of changes in this diff is simple moving Arguments and
Argument above Function_Call in the source order.
Merge pull request #597 from xzyfer/feat/functions-as-map-keys

Allow map keys to be function calls