Reverted the spi to use java service loaders instead of spring.

Also added test coverage for the spi project.