Changed rootlistener to root; will probably move.

RootListener actually doesn't inherit from Listener like I planned
initially, so I'm renaming and generalizing it. I'll probably move it
into its own directory eventually (object?).