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?
Yeah clear was dumb. Just wasn't paying attention, I think I tried to implement drop, it didn't work, then I absent mindedly put a drop method into the impl.

so the proper way to implement drop is to use `mut self` instead of `&mut self`?