Refactored the code so that a new OperationService can be injected.

Renamed the OperationServiceImpl to BasicOperationService (better name anyone?). Also the
Invocation related stuff has the 'Basic' name in them to show that these things
belong to each other.