Merge pull request #196 from gisakulabs/ShouldImplement_fix

#195 ShouldImplement assertion incorrect
Every invocation of Convey() now replaces nested action instances to retain closed over variables from the specific invocations of the parent scopes
Merge pull request #199 from m4rw3r/mw/closure_variables

Unique closure variables per Convey invocation
Refactorings
A few more test cases.
Now using `:=` instead of `var` to declare test state.

This is possible because of PR #199  :)