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.
Yes, I agree. I tried to do something similar, but ran afoul of a test that declares that `SourceParser#to_events` should return immediately after getting a successful result from a `SourceParser::Base` subclass:

https://github.com/botandrose/calagator/blob/remove_abstract_event_and_venue/spec/models/source_parser_spec.rb#L56

Maybe we could make the collect lazy and get the best of both worlds? I've never tried that. Or wait, is lazy enumerators only a recent ruby feature?