Since we use slotted classes for ASTs, we need a way to convert an AST `Node` to a Dict. I.e. `Name(value='test')` Should get converted to `{"kind": "Name", "value": "test"}`. It should convert recursively.