Project structure and PyBlock

Move headers from include to src

Use Block as an example for further bindings
- Declare PyBlock::do_export in its own header
- Define PyBlock::do_export in PyBlock.cpp
- Use a mixin that can inject methods into Block
`where it was uses` -> `where it was used` I guess, but we can fixed that later.