Remove AbstractEvent and AbstractVenue

Been wanting to do this for while. The `SourceParser` subclasses were creating an `AbstractEvent` and an `AbstractVenue`, but then immediately invoking complex methods to convert them to a normal `Event` and `Venue`. The abstract versions were transient, and never used outside of this process, and thus unnecessary. This refactoring removes all that complexity, and now `SourceParser` subclasses create `Event`s and `Venue`s directly.

This exposes more low-hanging refactoring fruit among the `SourceParser` subclasses, but I'll save that for later.
Personally I prefer to see `self.foo` instead of just `foo` because it matches visually with what I'm comparing against: `other.foo`

`self.foo < other.foo` is easier for me to understand than
`foo < other.foo`

Not a biggie, just thought I'd throw it out there.