Added service object to import entities and a CLI using it

I started making this change to see how it would turn out. I'm really not happy with that. For one thing, it moves the code in a direction that makes it harder to make the reporter optional. Right now the fact that you get an exception when it is not set, rather than it being ignored, is just done because we do not need the optional behaviour yet. Forcing things that just want to use the service and not monitor the events to pass in a null reporter is not very nice. So I'm much more inclined to have it default to a null reporter. That'd be more logic now, and a null reporter. Both of which are not needed yet.