Refactor AST to always treat sexprs as an array

`null`, `TextNode`, and an array (of sexprs) are all legal values for the attribute node `value` property. Nothing else.
can we remove this conditional someone? seems a bit confusing