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?
Sorry I was unclear, I thought with_capcity was the same as new but with an upper limit to how many items it will ultimately allocate for. This doesn't appear to be the case, it's only a promise that new allocations won't occur until you extend beyond that capacity. Doesn't limit the size of the vec at all.
In any case, I'll change this to new for now and we can have another method that fixes the size perhaps.