Make it possible to call initial function in interpolation.

It is not possible to have a function call first in interpolation.
"A random number: ${fqdn_random(30}" did not work because the first
bare word is tokenized as a VARIABLE by the lexer. 

This changes the lexer to emit a NAME token if the bare word is not
followed by a '('.
Add issue for ILLEGAL_NUMERIC_ASSIGNMENT

This is an issue for assignment to numeric (decimal and octal)
variables since numeric variables are only set by match result.
Forbid assignment to numeric variables (unless option is :ephemeral)

This is an internal protection against assignment to numeric
variables - as they royally screw things up wrt being overwritten
by ephemeral scopes (or causing imutability errors).
Renames label 'Variable Expression' to 'Variable'.

It just did not read right in error messages.
Add issue for ILLEGAL_NUMERIC_PARAMETER

Numeric variables are evil. It should not be possible to do:
define ($0, $1=2) etc.

This adds an issue for this problem.
Add validation of all expressions that will fail in transformation.

This provides better error messages than the transformation step's 
more crude and technical error messages. It also enables collecting
more than just the first error.

Adds validation of numeric variables and parameters.