Avoid using copying property as a block value

This may fix #505 leak issue.
Restore the type signature for dependencyBlock
Explain why the block properties are "strong"
Merge branch 'pr/506' (pull request #506)