Operators + and * work without args, fixes #372

Like other lisps, operators `+` and `*` return their identity values
when called with no arguments. With a single operand they return
the operand.

Without arguments, the present implementation expands `(+)` -> `(+ 0 0)` & 
`(*)` -> `(* 1 1)` 

An alternative approach for `+` would be to use `ast.UAdd` 
and use only one operand, however no such unary operation  is defined 
for multiplication, so I went ahead with something that works for both 
addition and multiplication

This fixes #372