After reading all the and_then calls when dealing with these, why don't we do:
```rust
struct PseudoElement {
  parent: LayoutPseudoNode,
  element: LayoutPseudoNode
}
...
before: Option<PseudoElement>,
after: Option<PseudoElement>
```
That seems like it will result in more readable and logical code.