Kernel parameter declaration

Kernel parameters for each of expression terminals are declared through
call to `kernel_param_declaration<>::get()` instead of hard-coding them
inside `declare_expression_parameter` struct.

refs #37
Setting kernel arguments

Kernel arguments for each terminal are set through call to
`kernel_arg_setter<Term>::set()` function, instead of hard-coding them inside
`set_expression_argument` struct.

refs #37