Makes the subclass implementations explicit so developers can see API

The current implementation assumes an API which for new developers is
rather difficult.  Doing this lets anyone wanting to add a new
fulfillment service explicitly know what the Service interface is
supposed to be.
Merge pull request #21 from csaunders/feature/adds_explicit_api_to_service_superclass

Makes the subclass implementations explicit so developers can see API