Handle and Manager implementation

This is not ready to be merged. The PR is created to serve for ongoing review.

First commit is just the original prototype with items renamed.

@kvark how do I make those wonderful check lists?
Doesn't `Drop::drop` do essentially the same thing? Why not implement `Drop`?