Replaced java.util.Observable/Observer with proper Spring
ApplicationEvent stuff. 

Refactored to use more dependency injection.
Added some command line processing. May soon replace with JOpt-based
CommandLinePropertySource.
changed to use @Value instead of environment.get