Added hygienic macros via defcode blocks
Allow variable capture within defcode blocks by passing arguments:
defcode(?a):
a = 5
produces code like:
a = 5
while the following:
defcode():
a = 5
produces something like:
_mpy_0 = 5
Version 0.2.1 introduced this syntax and version 0.2.2 allowed for variable argument lists in defcode() declarations like defcode(*args).