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?
I don't think we should allocate that much... perhaps, have a special `with_capacity` constructor alongside the default one (which just calls `Vec::new()`)?