Initial commit of this fork

Incomplete list of changes compared to Bart's version:
- maximum control for user over all stages of a Block's lifecycle
- a fast track way is moved to Block.create
- output_mode -> apply decorator
- no metaclasses, since no abstract methods left
Block creation and chaining demo