Correct function parameter binding

These commits introduce proper function parameter binding.
- beside the param block, also function parameters in parenthesis are supported.
- parameters can be bound by name (e.g. `f -arg 1`)
- `$args` is now supported inside a function

Lots of RosettaCode integration tests could be enabled with this feature.

Fixes #167 and #301