mmcu: Tweak to the macros to allow multiple declarations

This trick adds the line number in the declaration of the fake
'variable' to allows multiple declarations to coexists, it is used
for the pullup/down declaration in particular

Signed-off-by: Michel Pollet <buserror@gmail.com>
tests: Added a coroutine example

Slapped together test, but demonstrates a nice trick that works
on AVR for havbing multiple tasks concurently (coorperatively)

Signed-off-by: Michel Pollet <buserror@gmail.com>