octascript: support for decorators

This adds a decorator feature similar to Python. Decorators are specified as
either "@decorname" or "@decorname(extrargs)" and can be put before any
expression or a function declaration. The expression or the function we're
declaring is then replaced by the return value of the decorator function.
The decorator function always takes the expression or the declared function
as an argument plus any extra arguments to decorator after that (this is
unlike Python where decorators always take the function only and extra args
are handled differently).