sim_core.c: fix implimentation of inc/dec to match specification

the avr instruction manual states that overflow be set _before_ the operation takes place, however the core tests based on the result.  values checked adjusted accordingly.

bug find credit goes to: Shay Green <gblargg@gmail.com>
sim_core.c: fix implimentation of bld instruction

prior implimentation of the bld insruction was ORing bit with T, rather than replacing.

bug find credit goes to: Shay Green <gblargg@gmail.com>
sim_core.c: fix implimentation of ror instruction

prior implimentation just cleared n flag while specification states n should be set or cleared according to the most significant bit of the result.

bug find credit goes to: Shay Green <gblargg@gmail.com>

	modified:   simavr/sim/sim_core.c
sim_core.c: fix implimentation of muls instruction

specification for muls insruction states 2 cycles, not one as implimented.

bug find credit goes to: Shay Green <gblargg@gmail.com>

	modified:   sim_core.c
Merge pull request #27 from bsekisser/sim-core-inc-dec-bugfix

sim_core.c: fix implimentation of inc/dec to match specification
Merge pull request #28 from bsekisser/sim-core-bld-bugfix

sim_core.c: fix implimentation of bld instruction
Merge pull request #29 from bsekisser/sim-core-ror-bugfix

sim_core.c: fix implimentation of ror instruction
Merge pull request #30 from bsekisser/sim-core-muls-bugfix

sim_core.c: fix implimentation of muls instruction
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>