OOParser: Remove pointless dependency on type(p) for repr generation

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
Don't assume super(BaseProduction, self) has an __eq__ method

It probably doesn't.

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: abstract away p0 assignment

We are going to want to override it to do nothing for transformed ephemerals.

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: fix several egregious thinkos and typos

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: drop _ready

To my surprise we don't seem to need _ready -- instead we just
go to the data attribute when we don't want to trigger events

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: pop should return the popped value

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: fix thinko in can_become

We need to remember the seen items as we traverse the chain (thats the
whole point obviously).

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: make EphemeraProductions TupleAppearanceProductions

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: change __setslice__

Probably doesn't matter anyhow but change setslice of EphemeraProductions
to use normal accessors so that notifications will route through

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: more _ready removal

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: out-of-date comment removed

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: whitespace consistency

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: refactor the notification registration mechanism

The old notifications were pretty rough and the use of set turned out
to be problematic.  This version now seems to work.

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>
OOParsing: Add various Listy methods (just like UserListProduction, mostly)

Signed-off-by: Gregory M. Turner <gmt@be-evil.net>