temporary fix for issue # 13

issue is deeper than I thought, but makes perfect
sense. I'm going to move away from inheriting from
Structs, because of AST rewriting.
fix Walkable instance methods

Fix Walkable methods like replace_with, remove, next, previous,
child_after, child_previous_to, insert_before, insert_after.

The methods before were naively assuming that `children` returned
the same object all the time. This is true for nodes such as Nodes,
which just returns its member :nodes Array from its 'children'
method, but it wasn't true of many other node types. This was
breaking various AST Rewriting routines where even though the array
returned by 'children' was getting modified, the actual member
variable itself was not.

This fix modifies the actual member variable if possible, otherwise
it indexes into the 'children' array as a last resort to replace,
insert and remove child nodes.