CDK-159: Fixing ServiceLoader use.

ServiceLoader requires all implementing classes to have a no argument
constructor. That means that it isn't appropriate to use the real
service being loaded. This commit adds a Loadable interface to the SPI
with a load method that can be used to for registration. This improves
the registration process and reduces the amount of code in static
blocks.

Also, the POM was not set to include src/main/resources as a resource
folder. This is fixed so the service file is now correctly included in
the final jar.