Cleanup management library

I semi-dramatically changed the way this works so it's now a module again. It makes it way easier to deal with and avoids a bunch of horrible indirection I was doing before.

I'm NOT sure this fixes the bug I noticed today wherein setting e.g. `node[:rabbitmq][:default_user]` didn't actually override the default value. This is causing a bug that sucks and I'm hoping this simplification makes locating and resolving that bug easier.

I'm pretty sure it's related to some compile/converge time thing, so hopefully I can come up with a rad solution there. After that, this'll be pretty clean and reasonable I think.