optimize Apply

optimize Apply, especially with Lamda as caller.
optimize vop

optimize vop, add is tested.
optimize il.If

optimize il.If, tested.
fix bug in assign optimize

fix bug in assign optimize: don't optimize left side of assign to value.
remove abundant braces.

remove abundant braces for begin when toCode.
sideEffect and applySideEffect

refactor sideEffect and applySideEffect used in optimization.
fix bug in jsfun.optimize

fix bug in jsfun.optimize
io mark for optimization

io mark for optimization
redesign effect mark

three mark for effect: pure, effect and io
roadmap.todo

roadmap.todo: the plan to next step.
augment assign

augment assign: +=, -=, ......
catch/throw/unwind-protect

catch/throw/unwind-protect
catch/throw pass tests
unwind-protect fails.
catch/throw/unwind-protect

pass tests
callcc

callcc pass tests
logic succeed and fail

logic succeed and fail pass tests.
logic or

logic or pass tests